将两个条件逻辑结果组合成一个case语句

时间:2010-01-26 21:36:12

标签: mysql mysql-logic

我已经编写了一个查询来从数据库中选择销售价值,并在有任何使用时应用折扣。折扣可以是百分比,也可以是固定价值。我的查询应用折扣(第一个案例陈述),然后提取已应用的金额。

让我想到是否有可能在一个案例陈述中完成这个。

查询:

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

1 个答案:

答案 0 :(得分:1)

SELECT中的CASE语句不是函数,只能返回一个值。您可以在存储过程中实现此操作,您可以在其中使用CASE或IF THEN。