前5个记录组中的MS Access

问题描述:

回报以下的代码中的所有记录: -前5个记录组中的MS Access

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 

是否有可能有前5个记录每个BROKERAGE_NAME返回,其中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 
+0

我会使用'SELECT TOP 5'&'ORDER BY VAL_DATE DESC'建议,但只有当你的日期有不同的时间范围时才有效。因为它是2/10/2017将是第一名,并且30/09/2017将是第二名。 –

+0

评论http://allenbrowne.com/subquery-01.html,前n组每个部分 –

+2

可能重复[前n组访问中的每个组sql记录](https://*.com/questions/41220690/top -n-records-per-group-sql-in-access) –

SELECT TOP 5 
     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 
GROUP BY 
     BROKERAGE_NAME 
ORDER BY 
     VAL_DATE DESC` 
+0

这不会返回问题中指定的结果。它返回前五名经纪人。不是每个经纪商的前5名VAL_DATE。 – user1936588

+0

这是因为你的样本数据只有经纪人A - 他可能和我做的一样,只是复制你的样本并且使用它。完全忽略了你希望它被经纪人分割。 :) –

+0

@ DarrenBartrup-Cook - 改进的样本数据:) – user1936588