SQL 查询-多个日期范围

SQL Query-Multiple date ranges

我想通过提供多个日期范围从数据库中获取一些数据。例如,在 2 月,我想从 table 中获取每周报告,顺序为 2 月 1 日至 07 日、2 月 7 日至 14 日、2 月 14 日至 21 日、2 月 21 日至 28 日以及 2 月 28 日至 3 月 1 日。在数据库中的记录以每日而不是每周的方式存储。我想按周将其聚类并计算总和然后显示结果。知道这个案例的请帮帮我

要获得清晰的视图,请考虑 3 table 及其列。

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 table 之间匹配;通过按 fruits_type 提供分组获取数据,时间戳应按周计算。

知道的请帮忙

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

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 合并查询。