Я написал запрос, чтобы выбрать значения продаж из базы данных и применить скидки, если они были использованы. Скидки либо в процентах, либо просто фиксированная стоимость. Мой запрос применяет скидки (в первом выписке), а затем извлекает примененную сумму.
Это заставило меня задуматься, можно ли было сделать это в одном случае.
Запрос:
SELECT
SUM(CASE
WHEN td.Transaction_ID IS NULL
THEN p.Sale
WHEN td.Transaction_ID IS NOT NULL AND d.Discount_Type = '0'
THEN p.Sale - (p.Sale * (dp.Discount_Percent/100))
ELSE
p.Sale - dv.Discount_Value
END) PriceDiscounted,
SUM(CASE
WHEN td.Transaction_ID IS NOT NULL AND d.Discount_Type = '0'
THEN (p.Sale * (dp.Discount_Percent/100))
WHEN td.Transaction_ID IS NOT NULL AND d.Discount_Type = '1'
THEN dv.Discount_Value
ELSE '0'
END) Discount