Я надеюсь, что кто-то может помочь. Я не знаю, возможно ли это, но здесь идет речь.
Использование SQL Developer, подключенного к базе данных Oracle.
У меня следующий набор данных, возвращаемый из запроса
Item Qty On Hand
A 6 88
A 6 88
A 6 88
B 2 4
B 1 4
B 2 4
Использование функции LAG для поля Shortage
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
I Решить значение 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
, где столбец Дефицит фактически является вычислением
Предыдущее значение дефицита строки - Требуемое количество текущей строки.
Является ли этовозможно?
Я очень на это надеюсь.
Большое спасибо всем заранее за вашу помощь
С уважением
Iain