Расчет процента, если значение столбца X - PullRequest
0 голосов
/ 11 января 2019

У меня есть таблица с колонками ниже:

  • Стоимость
  • Канал продаж
  • Продукт Продавец

Я бы хотел провести другой расчет стоимости, если будут соблюдены определенные значения ...

т. Е.

if Sales Channel = Mobile, and Product Seller = Mark, then take 8% off cost

if sales channel = desktop, and product seller = James, then take 5% off cost

Я пытался:

select
channel,
acct_mgmr,
cost
(cost*0.05) as A
(cost*0.08) as B

from db.table

в идеале, будет иметь возможность увидеть окончательную цену продажи на основе канала и менеджера по продажам ... значения могут варьироваться в зависимости от комбинации столбцов

Ответы [ 2 ]

0 голосов
/ 11 января 2019

Вы можете сделать что-то подобное, используя оператор CASE

CREATE TABLE #tmp (Channel VARCHAR(255), acct_mgmr VARCHAR(255), cost INT)

INSERT INTO #tmp VALUES ('Mobile', 'Mark', 100)
INSERT INTO #tmp VALUES ('desktop', 'James', 200)

SELECT 
    channel,
    acct_mgmr,
    cost, 
    cost * (1 - CASE 
                    WHEN Channel = 'Mobile' AND acct_mgmr = 'Mark' THEN 0.08
                    WHEN Channel = 'Desktop' AND acct_mgmr = 'James' THEN 0.05
                END

    ) AS ModifiedCost
FROM #tmp

DROP TABLE #tmp
0 голосов
/ 11 января 2019

Вы можете использовать CASE, чтобы адаптировать расчет для каждого варианта использования:

SELECT
    channel,
    acct_mgmr,
    CASE
        WHEN ( Sales_Channel = 'Mobile' AND Product_Seller = 'Mark' )   THEN cost * 0.92
        WHEN ( Sales_Channel = 'desktop' AND Product_Seller = 'James')  THEN cost * 0.95
        ELSE cost 
    END as new_cost
FROM mytable
...