【发布时间】:2019-10-03 11:14:54
【问题描述】:
希望有人可以帮忙。我不知道这是否可能,但可以。
使用连接到 Oracle 数据库的 SQL Developer。
我从查询中返回了以下数据集
Item Qty On Hand
A 6 88
A 6 88
A 6 88
B 2 4
B 1 4
B 2 4
对字段短缺使用 LAG 函数
Lag(Qty) Over (Partition By Item Order By Item) As Shortage
返回
Item Qty On_Hand Shortage
---- --- ------- ---------
A 6 88 NULL
A 6 88 6
A 6 88 6
B 2 4 NULL
B 1 4 1
B 2 4 2
我通过使用解决NULL值
Nvl(Lag(Qty) Over (Partition By Item Order By Item), On_Hand + Qty) As Shortage
(如果“LAG”值为 Null,则将 NULL 替换为 Current On_Hand - Qty)
Item Qty On_Hand Shortage
A 6 88 82
A 6 88 6
A 6 88 6
B 2 4 2
B 1 4 2
B 2 4 1
第一行没问题。我真正要找的是
Item Qty On_Hand Shortage Shortage2
(Funtion Below)
A 6 88 82
A 6 88 76
A 6 88 70
B 2 4 2
B 1 4 1
B 2 4 -1
Shortage 列实际上是一个计算
前一行短缺值 - 当前行所需数量。
这可能吗?
我希望如此。
非常感谢任何人的帮助
问候
伊恩
【问题讨论】: