我有下面的数据在一个记录,我想更新年初至今的总额在同一个表,不确定如何写这个SQL
实际表
ID Date Total YTD_Total
123 01/01/2022 50
123 02/01/2022 25
123 08/01/2023 60
123 09/01/2023 50
123 10/01/2023 20
字符串
预期结果
ID Date Total YTD_Total
123 01/01/2022 50 50
123 02/01/2022 25 75
123 08/01/2023 60 60
123 09/01/2023 50 110
123 10/01/2023 20 130
型
3条答案
按热度按时间z3yyvxxp1#
我很少需要
update
语句,但这可以工作并返回预期的结果。你只需要在你的windows函数中同时按ID和YEAR分区。个字符
| ID|订单日期|总|YTD_TOTAL|
| --|--|--|--|
| 123 |2022年1月1日| 50 | 50 |
| 123 |2022年2月1日| 25 | 75 |
| 123 |23年8月1日| 60 | 60 |
| 123 |2023年9月1日| 50 | 110 |
| 123 |2023年10月1日| 20 | 130 |
fiddle
ezykj2lf2#
要计算列的运行总计,您可以使用分析函数,也就是窗口函数。基本语法是:
字符串
这将根据示例数据回答您的问题。对于更复杂的场景,请阅读我向您指出的文档。
5m1hhzi43#
我不知道,如果我猜你的计算规则正确,但以下工程(我用数字而不是日期,但它也将与日期一起工作)
创建和填充表格:
字符串
更新-声明
型