Как прибавить остаток скидки (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р


Ответы (0 шт):