Как прибавить остаток скидки (30р) от второго товара к первому товару?
Есть таблица с покупками positionName nvarchar(150), positionCost numeric(10,2).
И нам дана скидка @discount int = 100. Надо её равномерно распределить по всем позициям. То есть условно:
Товар 1 / 200руб / 50
Товар 2 / 20 руб / 50
Стоимость второго товара ниже чем сама скидка Сделал такой запрос:
DECLARE @discount DECIMAL(10, 2) = 100;
WITH cte AS (
SELECT *, @discount / (SELECT COUNT(*) FROM pokupki) AS sk
FROM pokupki
)
SELECT *,
CASE WHEN sk > positioncost THEN positioncost
ELSE sk
END AS skidka
FROM cte;
Получаем:
Товар1, цена:200, скидка:50р
Товар2, цена:20р, скидка:20р