【发布时间】:2017-05-11 20:14:29
【问题描述】:
我有两张表,例如
- 收入(点、日期、公司)
- 结果(点、日期、出)
其中 point 和 date 是主键。
我需要找出任何给定日期的总收入inc 和结果out。
我的回答
WITH all_date AS
(SELECT point, date FROM income
UNION
SELECT point, date FROM outcome)
SELECT a.point, a.date, SUM(inc), SUM(out)
FROM all_date a LEFT JOIN income i ON i.point=a.point AND i.date=d.date
LEFT JOIN outcome o ON o.point=a.point AND o.date=a.date
GROUP BY a.point, a.date
但是我得到了错误的结果。因为all_date LEFT JOIN income 在尝试使用outcome 执行LEFT JOIN 时会复制income 中的某些行,因此会弄乱最终的SUM。
基本上我想LEFT JOIN 第三张桌子outcome 和all_date 不是 all_date LEFT JOIN income。请参阅http://www.sql-ex.ru/learn_exercises.php 的 Qus No 30. 以获得进一步的说明
【问题讨论】:
标签: mysql sql outer-join