请教SQL中怎么实现查询商品销售明细的日合计及本月累计
下方是数据内容示意
制单日期 | 商品 | 销售额 |
---|---|---|
2023-01-21 00:00:00.000 | 商品A | 100.00 |
2023-01-21 00:00:00.000 | 商品A | 150.00 |
2023-01-24 00:00:00.000 | 商品A | 240.00 |
2023-02-05 00:00:00.000 | 商品A | 80.00 |
2023-02-06 00:00:00.000 | 商品A | 90.00 |
2023-02-08 00:00:00.000 | 商品A | 100.00 |
2023-03-12 00:00:00.000 | 商品A | 120.00 |
2023-03-1200:00:00.000 | 商品A | 110.00 |
2023-03-24 00:00:00.000 | 商品A | 200.00 |
2023-04-24 00:00:00.000 | 商品A | 140.00 |
想实现查询出一下效果
日期 | 商品 | 销售额 | 本月累计 |
---|---|---|---|
2023-01-21 00:00:00.000 | 商品A | 250.00 | 490.00 |
2023-01-24 00:00:00.000 | 商品A | 240.00 | 490.00 |
2023-02-05 00:00:00.000 | 商品A | 80.00 | 270.00 |
2023-02-06 00:00:00.000 | 商品A | 90.00 | 270.00 |
2023-02-08 00:00:00.000 | 商品A | 100.00 | 270.00 |
2023-03-12 00:00:00.000 | 商品A | 230.00 | 430.00 |
2023-03-24 00:00:00.000 | 商品A | 200.00 | 430.00 |
2023-04-24 00:00:00.000 | 商品A | 140.00 | 140.00 |
前边按天统计各商品的销售合计是会的,但是不知道用什么方法可以实现每行显示日期当月的合计
group by 一下日期就行了呀 ,select a.制单日期,a.商品,a. sum(a.销售额) from table a group by a.制单日期,a.商品; 这样可以求出每天每个商品的累计,然后要获取本月累计只用在跟你的表关联一下,查询小于当天的销售额就行了,简单点可以使用 OVER PARTITION BY,不知道你的版本有没有,大致就这样呗
SELECT
[日期],
[商品],
[销售额],
SUM([销售额]) OVER (PARTITION BY [商品] ORDER BY [日期]) AS [本月累计]
FROM
[表名]
WHERE
[商品] = '商品A'
ORDER BY
[日期]