我需要在SQL Server中编写一个SQL查询,希望我能解释一下我的意思。我有几年的数据。这是一些数据库的示例。
我想要做的是每周获取值为New_Zealand的牛的总数。
因此,对于2013-01-12周,总价值将是36080(新西兰的总和,其中动物是该周的牛)。在数据库中的所有周内重复此操作。
我目前有这个SQL select语句。
SELECT SUM(New_Zealand)
FROM Slaughter_Data
WHERE Animal = 'Bovine'
AND WeekEndingDate BETWEEN '2010-01-04' AND '2015-01-03'
AND New_Zealand IS NOT NULL
GROUP BY DATEPART(wk, WeekEndingDate)
这是错误的,因为它给了我52周,所有New_Zealand值总和Animal = Bovine,并且在所有年份的那一周总和。我想要每年都这样。谁能告诉我需要改变什么?
我希望我已经说清楚,如果我没有这样做,请告诉我,我可以澄清一下。
答案 0 :(得分:2)
如何按WeekEndingDate
进行分组,因为它会获得该年中该周的数字。
SELECT SUM(New_Zealand)
FROM Slaughter_Data
WHERE Animal = 'Bovine'
AND WeekEndingDate BETWEEN '2010-01-04' AND '2015-01-03'
AND New_Zealand IS NOT NULL
GROUP BY WeekEndingDate