我已经写了一个查询来选择来自数据库的销售价值,并应用任何使用的折扣。折扣可以是百分比,也可以是平价。我的查询应用折扣(第一种情况说明),然后提取应用的金额。将两个条件逻辑结果合并为一个案例声明
它让我想如果有可能在一个病例陈述中完成这件事。
查询:
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
对不起 - 我没有注意到你的问题中的MySQL:我的答案是特定于ms-sql。 – davek 2010-01-26 21:53:02