首页 > 解决方案 > 将所有小于日期范围中日期的记录与 MsSql 中的分组相加

问题描述

我有这样的记录

qty    date          user
1      2019-09-01    a
1      2019-09-01    b
2      2019-09-01    a
1      2019-09-01    c
1      2019-09-02    a
3      2019-09-02    c
1      2019-09-02    a
4      2019-09-03    b
1      2019-09-03    c
1      2019-09-03    a

我只想按日期和用户对 qty 的组求和,并且总和小于给定日期。决赛桌就是这样。

qty    date        user
3      2019-09-01  a
1      2019-09-01  b
1      2019-09-01  c
5      2019-09-02  a
5      2019-09-03  b
4      2019-09-02  c
9      2019-09-03  a
6      2019-09-03  c

有没有办法在没有while循环的情况下列出这些记录?

标签: sql-serverdatesum

解决方案


尝试这样的事情,但您需要修改它以适合您的表格和 where 子句(如果有)。

SELECT 
  SUM(yt.qty) AS qty,
  yt.date,
  yt.user
FROM your_table yt
WHERE yt.date between "2019-09-01" AND "2019-09-03"
GROUP BY yt.user, yt.date
ORDER BY yt.date ASC 

http://sqlfiddle.com/#!9/472621/1/0


推荐阅读