【发布时间】:2015-05-03 08:26:08
【问题描述】:
这个问题和我之前的问题How to left join 2 tables with SUM() and MAX() grouped by date有关
我改变的是我添加了 user_id 列(自动递增)并希望选择每个日期具有最高 user_id 的值
我有表 loadhistory(想要“仅选择每个日期具有最高 user_id 的值”分组并按日期 DESC 排序。) 所以在这种情况下,我想为 2015-02-27 选择 150,因为它在该日期具有最高的 user_id,在 2015-02-28 中选择 50
| user_id | customer_id | date | bal |
1 1 2015-02-27 100
2 1 2015-02-27 150
3 1 2015-02-28 150
4 1 2015-02-28 50
和表事务记录(希望使用 SUM(bal) group by 和 order by date DESC 对每个日期的值求和)
| user_id |customer_id | date | bal |
1 1 2015-02-27 50
2 1 2015-02-27 20
3 1 2015-02-28 10
我想加入两个看起来像这样的表:
| date | balance | amount paid |
2015-02-28 50 10
2015-02-27 150 70
这是目前为止的代码(我使用了从上一个问题中得到的代码,并在我的新问题中对其进行了编辑,希望得到想要的结果,但没有)
SELECT a.customer_id, a.date, (b.bal AS bal WHERE b.user_id = MAX(b.user_id) , a.paid
FROM (
SELECT customer_id, date, SUM(bal) AS paid
FROM transactionrecord
GROUP BY customer_id, date
) AS a LEFT JOIN loadhistory AS b
ON a.customer_id = b.customer_id AND a.date = b.date
WHERE a.customer_id = 1
GROUP BY a.customer_id, a.date, a.paid
ORDER BY a.date DESC
请帮忙。提前致谢
【问题讨论】: