Рассчитайте сумму, используя sql чехол на бесплатный продукт - PullRequest
0 голосов
/ 10 марта 2020

У меня есть таблица продаж, которая содержит (код продукта, количество, цена за единицу ...), и я хочу рассчитать сумму для каждого кода продукта, но у меня есть некоторый бесплатный продукт, и я хочу, чтобы сумма была равна 0

Как я могу сделать это с SQL?

Это идея того, что я ожидаю

CASE
    WHEN freegoodline = 0 THEN
        AMOUNT = SUM(B.QUANTITYB.UNITPRICEB.VAT1RATE) OVER(partition by B.PRODUCT_CODE, B.sinvoice_code)
    ELSE
        AMOUNT = 0
END

Ответы [ 2 ]

2 голосов
/ 10 марта 2020

Используйте CASE выражение для выполнения условного агрегирования:

SELECT productcode, 
       SUM(CASE WHEN productcode = 'free' THEN 0 ELSE quatity * unitprice  END) AS Amount
FROM sales s
GROUP BY productcode;
0 голосов
/ 10 марта 2020

Как правило, если товар бесплатный, тогда цена за единицу будет равна нулю или NULL. Если это так, вам просто нужно:

sum(quantity * unitprice)

Нет необходимости в условных логах c.

...