我想通过提供多个日期范围从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提供组来获取数据,时间戳应该是每周一次。
如果您知道这个,请提供帮助
答案 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合并查询。