SQL查询 - 多个日期范围

SQL查询 - 多个日期范围

问题描述:

我想通过给出多个日期范围从数据库中获取一些数据。例如,在2月份,我希望从2月1日到7日,2月7日到14日,2月14日到21日,2月21日到28日和2月28日到3月01日这一顺序获得每周报告。在DB中,记录存储在每日明智不是每周明智的。我想按照每周明智的方式对它进行聚类,然后计算总和,然后显示结果。如果你知道这个案子,请帮助我。SQL查询 - 多个日期范围

对于清晰视图,请考虑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和时间戳提供群组应在每周明智获取数据。

请帮助,如果你知道这个

+0

请编辑您的问题与相关的表结构,一些样本数据和所需的结果。 –

+0

您是否对每周计算的一般解决方案感兴趣,或者只是针对特定日期? – tobypls

+0

对于清晰视图,请考虑3个表格及其列。 表A:ID,时间戳(注释数据每日插入) 表B:ID,水果 表C:ID,fruits_type 结果: fruits_type \t计数(ID)\t时间戳 苹果\t \t 3 01-02- 2016年至2016年7月2日 橙\t \t 5到2016年1月2日2016年7月2日 菠萝\t \t 8至2016年1月2日2016年7月2日 苹果\t \t 4到2016年7月2日14-02-2016 橙色 07-02-2016至14-02-2016 条件:id应该在3个表中匹配;通过提供fruit_type组和timestamp来获取数据应该是每周明智的。如果你知道这一点,请帮助。 – radhik

要得到两个日期之间的所有值的总和,你会做这样的:

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合并阙里斯。