0

我想通过提供多个日期范围从数据库中获取一些数据。例如,在 2 月,我想从 2 月 1 日至 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 和时间戳提供分组来获取数据,应该是每周一次。

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

4

1 回答 1

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

于 2016-03-03T16:23:22.377 回答