我正在尝试从 Mysql数据库获取每个客户的最新交易,其中每个客户可能拥有不同数量的交易记录。
这里是Mysql表:
这个表我已经提到过具有粗体(样式)的行,这些 粗体行是最后的交易记录。我希望每个客户上次交易。
我的回答低于一个。
我需要对此选定记录进行mysql查询。
答案 0 :(得分:5)
您希望获取交易日期的MAX
来查找最近的交易。由于这是一项汇总功能,您还需要GROUP BY
cus_id
cus_id
。然后,此结果会为您提供客户的最新日期,以便您可以根据tranc_date
和SELECT cus_tranc.cus_id,
cus_tranc.tranc_amt,
cus_tranc.tranc_type,
cus_tranc.tranc_date
FROM cus_tranc
INNER JOIN (
SELECT cus_id,
MAX(tranc_date) AS 'tranc_date'
FROM cus_tranc
GROUP BY cus_id) max_tranc ON cus_tranc.cus_id = max_tranc.cus_id AND cus_tranc.tranc_date = max_tranc.tranc_date
组合加入其余数据。
查询将如下所示:
{{1}}
您可以在this SQL Fiddle。
中查看此结果答案 1 :(得分:1)
SELECT cus_id,
tranc_amt,
tranc_type,
MAX(tranc_date) AS 'tranc_date'
FROM cus_tranc
GROUP BY cus_id
ORDER BY MAX(tranc_date)
答案 2 :(得分:0)
SELECT cus_id,tranc_amt,tranc_type,tranc_date
FROM cus_tranc
WHERE tranc_date IN (SELECT MAX(tranc_date)
FROM cus_tranc
GROUP BY cus_id);