SQL查询 - 多个日期范围

时间:2016-03-03 15:49:31

标签: sql-server dbvisualizer sql-query-store

我想通过提供多个日期范围从DB中获取一些数据。例如,2月份我希望从2月01日至07日,2月7日至14日,2月14日至21日,2月21日至28日以及2月28日至3月1日的订单中获得每周报告。在DB中,记录存储在每日明智而不是每周明智。我想将其聚为每周一次,并计算总和然后显示结果。如果你知道这个案子,请帮帮我。

对于清晰视图,请考虑3个表格和它的专栏。

Table A:id,timestamp (comment-data is inserted daily)   
Table B:id,fruits  
Table C:id,fruits_type  

结果:

fruits_type count(id)   timestamp 
apple   3   01-02-2016 to 07-02-2016 
orange  5   01-02-2016 to 07-02-2016 
pineapple   8   01-02-2016 to 07-02-2016 
apple   4   07-02-2016 to 14-02-2016 
orange  5   07-02-2016 to 14-02-2016 

条件:id应该匹配3个表;通过fruits_type提供组来获取数据,时间戳应该是每周一次。

如果您知道这个,请提供帮助

1 个答案:

答案 0 :(得分:0)

要获得两个日期之间所有值的总和,您可以这样做:

SELECT SUM(Column1)
FROM Table1
WHERE Date1 BETWEEN '2/1/2016' AND Date1 <'2/7/2016'

如果你想让它变得更灵活并让查询获得上周的总和,你可以使用DATEADD函数滞后一周:

SELECT SUM(Column1)
FROM Table1
WHERE Date1 BETWEEN DATEADD(week, -1, GETDATE()) AND Date1 < GETDATE()

如果希望结果集包含每周的行,则可以使用UNION合并查询。