У меня есть таблица продуктов, и я хочу сделать зигзагообразное вычитание со столбцом цены
Я пробовал с приведенным ниже запросом, но он не работает для меня
SELECT price
,price - (SELECT COALESCE(lag(price) OVER (ORDER BY ProductID),price) AS PayableInQuarter
FROM @Products WHERE ProductID=1) from @Products
Код для создания таблицы
DECLARE @Products TABLE (ProductID INT, ProductName VARCHAR(20), Price int)
INSERT INTO @Products VALUES (1, 'A', 1000)
INSERT INTO @Products VALUES (2, 'B', 5000)
INSERT INTO @Products VALUES (3, 'C', 9000)
INSERT INTO @Products VALUES (4, 'E', 12000)
SELECT * FROM @Products
Ожидаемый результат, как показано ниже
| ProductId | ProductName | Price | Difference |
|-----------|-------------|-------|------------|
| 1 | A | 1000 | 1000 |
| 2 | B | 5000 | 4000 |
| 3 | C | 9000 | 5000 |
| 4 | E | 12000 | 7000 |