我正在考虑一种对列求和的方法,但如果其中一行中有02或03,则不显示求和费用,应该更改。
从费用>'的账单中选择序列号、电子邮件、SUM(费用(作为应付金额0'通过电子邮件分组。
这按预期显示,但例如,如果列类型等于02或03,我需要将电荷场从.10更改为.50,如果类型场等于04或05,我需要从.20更改为.80,以使总和正确输出。
我还没有完全跟上MySQL中IF语句的速度,但我猜测这将是一种方式。
因此,可以使用case
-when
:进行更改
SELECT serial,
email,
SUM(
CASE
WHEN `type` IN ('02', '03') THEN charge + 0.40
WHEN `type` IN ('04', '05') THEN charge + 0.60
ELSE charge
END
) AS amountpayable
FROM billings
WHERE charge > '0'
GROUP BY email
在上面我假设
- 您有一个
type
字段 - 您的
type
字段是文本字段 - 您的
charge
是数字 - 在02或03
type
的情况下,charge
+0.40(.50-.10(是正确的电荷 - 在04或05
type
的情况下,charge
+0.60(.80-.20(是正确的值 - 对于其他类型,
charge
是好的
如果我对你的问题的上述理解是错误的,请告诉我。