sql - 基于双字段标准的当前行余额
问题描述
如果我有这样的表:
DATE CATEGORY QTY SUM
01/01/2019 B 2 true
02/01/2019 B 3 true
03/01/2019 A 1 false
04/01/2019 B 3 true
05/01/2019 A 3 true
06/01/2019 A 2 true
我需要按类别添加数量字段,其中“总和”列为真,按“日期”字段排序。如何在 SQL Server 中使用 CTE 获得以下结果
结果查询:
DATE CATEGORY QTY_TOTAL SUM
01/01/2019 B 2 true
02/01/2019 B 5 true
03/01/2019 A 0 false
04/01/2019 B 8 true
05/01/2019 A 3 true
06/01/2019 A 5 true
PS:我寻找了一些类似的问题,但没有发现可以完全澄清我的疑问。
提前致谢!
解决方案
你想要累积总和:
select t.*, sum(case when [sum] = 'true' then qty else 0 end) over (partition by category order by [date]) as QTY_TOTAL
from table t
order by [date];
推荐阅读
- python - python上的reverse_geocoder和熊猫
- python - 尽管没有 NaN,但数据框将值返回为 NaN?
- ember.js - Ember Cli Mirage:带有 JSONAPISerializer 的活动模型适配器
- php - Doctrine DBAL 访问者模式
- php - PHP不会重置密码
- c - 可嵌入的 common lisp 仅构建 .fasc 而不是 .o
- c - 从二进制文件存储和打印链表指针内容
- ofbiz - 如何在生产中配置 Ofbiz
- validation - 比较 SharePoint 2013 列表中的两个数字字段并显示一条消息
- python - 在python中将嵌套的JSON文件转换为数据框