【发布时间】:2020-06-30 14:02:51
【问题描述】:
【问题讨论】:
标签: mysql group-by outer-join
【问题讨论】:
标签: mysql group-by outer-join
由于您希望您的结果按日期分组,您应该使用GROUP BY 按日期分组。
然后您可以使用SUM 获取每天的总和。
但是,由于您需要根据另一列的值不同的总和,您必须为您想要的每一列使用SUM,并在内部使用CASE,以便检查另一列的值并仅添加相应的金额如果该列具有所需的值。
这样的事情应该可以工作。
你也可以在这里查看小提琴 http://sqlfiddle.com/#!9/05ab84/4
SELECT
`TradeDate`,
SUM(CASE
WHEN `BaseCCY`='EUR' THEN `BaseAmt`
WHEN `TermCCY`='EUR' THEN `TermAmt`
ELSE 0
END) AS `EUR`,
SUM(CASE
WHEN `BaseCCY`='USD' THEN `BaseAmt`
WHEN `TermCCY`='USD' THEN `TermAmt`
ELSE 0
END) AS `USD`,
SUM(CASE
WHEN `BaseCCY`='AUD' THEN `BaseAmt`
WHEN `TermCCY`='AUD' THEN `TermAmt`
ELSE 0
END) AS `AUD`,
SUM(CASE
WHEN `BaseCCY`='CNH' THEN `BaseAmt`
WHEN `TermCCY`='CNH' THEN `TermAmt`
ELSE 0
END) AS `CNH`
FROM `test` GROUP BY `TradeDate`
【讨论】: