2016-08-31 71 views
0

我想拉几个SUM,但我陷入了如何缩小到特定的一年。使用EXTRACT选择特定年份

我有以下代码...

SELECT SITE_ID, Extract(YEAR FROM DATE_ORDERED) YEAR, Extract(MONTH FROM DATE_ORDERED) MONTH, SUM(TOTAL_PRICE), SUM(TOTAL_PRICE), SUM(TOTAL_SAVINGS) FROM DB.ACTUAL_SAVINGS_MVIEW WHERE SITE_ID = 561 GROUP BY SITE_ID, Extract(YEAR FROM DATE_ORDERED), Extract(MONTH FROM DATE_ORDERED) ORDER BY YEAR DESC, MONTH DESC

这将返回所有可用的几年,当我只想找2016年

任何和所有帮助将不胜感激!

+0

你没有被今年限制在where子句 –

+0

我难以置信哈哈哈...很抱歉..它是一个漫长的一天... –

+0

'Extract(YEAR FROM DATE_ORDERED)'可能不会使用任何索引/分区,更好地使用可搜索条件:'DATE_ORDERED BETWEEN DATE'2016-01-01'和DATE'2016-12-31'' – dnoeth

回答

3

如何将它添加到您的where子句:

SELECT SITE_ID, 
    Extract(YEAR FROM DATE_ORDERED) YEAR, 
    Extract(MONTH FROM DATE_ORDERED) MONTH, 
    SUM(TOTAL_PRICE), 
    SUM(TOTAL_PRICE), 
    SUM(TOTAL_SAVINGS) 
FROM DB.ACTUAL_SAVINGS_MVIEW 
WHERE SITE_ID = 561 
AND Extract(YEAR FROM DATE_ORDERED) = 2016 
GROUP BY SITE_ID, 
    Extract(YEAR FROM DATE_ORDERED), 
    Extract(MONTH FROM DATE_ORDERED) 
ORDER BY YEAR DESC, 
    MONTH DESC 
+0

Yea ... I我不能相信我错过了这一天......漫长的一天一定让我失去了我的想法......我现在感到很蠢,哈哈哈......感谢这一点 –