我有以下查询,它给出了销售额的总和:
SELECT SUM(sales)
FROM
(SELECT sales FROM ...) combined
我现在需要在伪代码中添加一个基于某些货币的条件减法,就像这样:
SELECT SUM(sales) - (SUM(sales) IF currency IN ('jpy', 'aud') * 0.05)
FROM
(SELECT sales FROM ...) combined
我将如何创建此条件 SUM 或子查询?
最佳答案
您可以在求和时应用因子:
SELECT SUM(CASE WHEN currency IN ('jpy', 'aud')
THEN sales * 0.95
ELSE sales
END)
FROM combined
CASE有两种形式。这个检查 WHEN 之后给出的 bool 表达式是否为真。如果是,它返回按比例减少 5% 的销售额;如果不是,则在 ELSE 之后返回表达式。您可以组合 WHEN...THEN 对。第一个计算结果为 true 的返回 THEN 之后的表达式。
您可能已经按照问题中的建议完成了此操作,方法是从 JPY 和 AUD 中减去 TAX,如下所示:
SELECT SUM(sales)
- ifnull (SUM(CASE WHEN currency IN ('jpy', 'aud')
THEN sales * 0.05
END), 0)
FROM combined
但这对查询没有任何帮助。
关于mysql - SUMMING 条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10873284/