首页 新闻 会员 周边 捐助

sql 函数有累减的功能吗

0
[待解决问题]

sql 函数有累减的功能吗

我只知道有累加sum 有累减吗

累加是可以 用这个
sum(CASE WHEN 未领料 < 0 THEN 0 ELSE 未领料 END) OVER (partition BY
子项物料编码
ORDER BY FPriority rows BETWEEN unbounded preceding AND CURRENT row) AS 累计未领
5-13=-8 然后下行-8 -7=-15 所以 这个累减怎么做

superstar的主页 superstar | 菜鸟二级 | 园豆:258
提问于:2023-04-15 12:09
< >
分享
所有回答(4)
0
select a, b a-b from t
会长 | 园豆:12463 (专家六级) | 2023-04-15 19:32

你这是错误的,你看我的 总现存-未领=现存 5-13= -8
拿-8当总现存 -8-7=-15

支持(0) 反对(0) superstar | 园豆:258 (菜鸟二级) | 2023-04-15 20:36

@superstar: 你的意思是数据库表里只要未领和现存这两字段?你要查出3个字段来?总现存是要计算出来的?

支持(0) 反对(0) 会长 | 园豆:12463 (专家六级) | 2023-04-17 14:42

@superstar: 我没明白你的意思,建议描述再细一些

支持(0) 反对(0) 会长 | 园豆:12463 (专家六级) | 2023-04-17 14:42
0

SQL中也有累减的功能,可以使用类似累加的方式实现。下面是一个例子:

假设有一张表test_table,包含id和value两个字段,现在需要对value字段进行累减,可以使用以下SQL语句:

sql

SELECT t1.id, t1.value, (SELECT SUM(t2.value) FROM test_table t2 WHERE t2.id <= t1.id) as cum_value
FROM test_table t1;
其中,cum_value就是value字段的累减值。这个SQL语句使用了一个子查询,该子查询计算id小于等于当前行id的所有行的value之和,从而得到当前行的累减值。

注意,这种方式不适用于大型数据集,因为每行都需要执行一个子查询,性能可能会较差。

Technologyforgood | 园豆:7676 (大侠五级) | 2023-04-17 20:09
0

;with a as (
select * from .......
)
select * from a ..........

LiveCoding | 园豆:502 (小虾三级) | 2023-04-26 11:36
0
ycyzharry | 园豆:25683 (高人七级) | 2023-04-27 17:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册