我已经编写了一个查询来从数据库中选择销售价值,并在有任何使用时应用折扣。折扣可以是百分比,也可以是固定价值。我的查询应用折扣(第一个案例陈述),然后提取已应用的金额。
让我想到是否有可能在一个案例陈述中完成这个。
查询:
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
答案 0 :(得分:1)
SELECT中的CASE语句不是函数,只能返回一个值。您可以在存储过程中实现此操作,您可以在其中使用CASE或IF THEN。