Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL查询以获取跨年份每周的总值_Sql_Sql Server - Fatal编程技术网

SQL查询以获取跨年份每周的总值

SQL查询以获取跨年份每周的总值,sql,sql-server,Sql,Sql Server,我需要在SQLServer中编写一个SQL查询,我希望我能解释一下我想要什么。我有几年的数据。下面是一些数据库的示例 我想做的是得到新西兰每周牛的总数 因此,2013-01-12周的总价值为36080(该周动物为牛的新西兰总和)。在数据库中的所有周内重复此操作 我目前有这个SQL select语句 SELECT SUM(New_Zealand) FROM Slaughter_Data WHERE Animal = 'Bovine' AND WeekEndingDate BETWEEN

我需要在SQLServer中编写一个SQL查询,我希望我能解释一下我想要什么。我有几年的数据。下面是一些数据库的示例

我想做的是得到新西兰每周牛的总数

因此,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周的时间,所有新西兰的值加起来,其中动物=牛,并且在所有年份的这一周加起来。我每年都要。有人能告诉我需要改变什么吗


我希望我已经讲清楚了,如果没有讲清楚,请告诉我,这样我可以澄清

根据
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

您需要在之前为您的组添加年份。如果可能的话,我会考虑规范你的结构,这样你就没有国家列为你的数据。看起来很多其他的部分也可以进行一些规范化。您还需要按ForearWew_Zealand进行分组。Wew_Zealand实际上是视图中的一个派生列。实际数据库不包含该列,只包含North_Island和South_Island。你是在建议我用一列来表示值,然后用另一列来区分北岛还是南岛?肖恩:欢迎你提出任何关于数据标准化的建议,因为我对所有这些都不熟悉?如果我这样做,会发生什么呢?它结合了多年来每周的所有值。i、 e.将合并2010年、2011年、2012年、2013年、2014年和2015年第1周的所有值。我已经设法解决了,我会把答案贴出来,因为我认为这对其他人是有益的。如果有人有更好的答案,我会将其标记为正确。我对SQL很陌生,所以边学习边学习。不过,我希望大家对我的数据是否需要规范化发表意见。我想你指的是
周数
,而我指的是
周末日期
,这应该是一年中唯一的一周。不,我试过了。它将多年的所有值合并到同一周?根据您的数据,这是不可能的!在WeekEndingDate上的聚合(如“2013-01-03”)无法合并其他年份的值。您似乎是对的。我可以发誓我会先尝试,因为这似乎是显而易见的事情。出于某种原因,我在一周内就把它全部分组了。谢谢你。我们已经相应地调整了它。