【发布时间】:2017-04-14 14:39:14
【问题描述】:
AccountNo Account Name Transaction time Transaction Amount
A01 Name 1 01-01-2016 04:00:00 5000
A01 Name 1 01-01-2016 07:30:00 3500
A01 Name 1 01-01-2016 09:30:00 3500
A01 Name 1 01-01-2016 12:00:00 6500
A01 Name 1 02-02-2016 06:00:00 4000
A01 Name 1 01-02-2016 08:30:00 8000
A01 Name 1 01-02-2016 09:30:00 8000
A02 Name 2 05-01-2016 04:00:00 2000
A02 Name 2 05-01-2016 07:30:00 8500
A02 Name 2 08-02-2016 06:00:00 1000
A02 Name 2 09-02-2016 08:30:00 9000
我需要一个不使用派生表的查询来获取每个帐户的最新交易记录。查询应支持Oracle 或TERADATA。
使用派生表我可以解决它如下:
SELECT a.accountno,
a.account_name,
a.transaction_time,
a.transaction_amount
FROM acct_details a,
(SELECT accountno,
Max(transaction_time) AS Transaction_time
FROM acct_details
GROUP BY accountno) b
WHERE a.accountno = b.accountno
AND a.transaction_time = b.transaction_time;
感谢您的帮助!!
【问题讨论】: