如何获取Mysql中每个客户的最后交易详情?

时间:2014-05-21 11:34:22

标签: mysql mysql-workbench

我正在尝试从 Mysql数据库获取每个客户的最新交易,其中每个客户可能拥有不同数量的交易记录。

这里是Mysql表:

enter image description here

  

这个表我已经提到过具有粗体(样式)的行,这些   粗体行是最后的交易记录。我希望每个客户上次交易。

我的回答低于一个。

enter image description here

我需要对此选定记录进行mysql查询。

3 个答案:

答案 0 :(得分:5)

您希望获取交易日期的MAX来查找最近的交易。由于这是一项汇总功能,您还需要GROUP BY cus_id cus_id。然后,此结果会为您提供客户的最新日期,以便您可以根据tranc_dateSELECT 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);