【发布时间】:2017-10-05 09:36:26
【问题描述】:
下面的代码返回所有记录:-
SELECT b.BROKERAGE_NAME, q.VAL_DATE
FROM TBLQUOTESNEW q LEFT JOIN TBLBROKERAGESNEW b ON q.BROKERAGE_ID = b.ID
WHERE q.VAL_DATE Is Not Null
是否可以返回每个 BROKERAGE_NAME 的前 5 条记录,其中 VAL_DATE 是递减的?
包括
Brokerage A 02/10/2017
Brokerage A 02/10/2017
Brokerage A 02/10/2017
Brokerage A 02/10/2017
Brokerage A 01/10/2017
Brokerage B 06/06/2016
排除(因为不在前 5 名中)
Brokerage A 30/09/2017
【问题讨论】:
-
我本来建议使用
SELECT TOP 5和ORDER BY VAL_DATE DESC,但这只有在您的日期有不同的时间范围时才有效。因为它是 2/10/2017 将是第一名,30/09/2017 将是第二名。 -
查看allenbrowne.com/subquery-01.html,每组前n个部分
-
必须同意@ErikvonAsmuth。正在研究如何做,那是我找到的帖子,我认为 Allenbrowne 链接是我用来在副本中获得答案的链接。
-
它不是重复的(反正不是我的)