MS Access:从每个类别中选择N条记录

时间:2012-04-11 11:15:29

标签: sql ms-access

我无法在MS Access SQL上解决此问题。

我有一个 foo 表,其中包含以下字段: id,title,category,date

我需要显示6条记录,显示每个类别中最近的2个项目

例如,我有:

ID   TITLE   CAT   DATE
------------------------
1    aaa     cat1  12/03/12  
2    sdfs    cat2  12/03/12  
3    asg     cat2  13/03/12  
4    flkgjfl cat3  11/03/12  
5    dgdg    cat1  18/03/12  
6    dfgd    cat1  15/03/12  
7    dgdgd   cat3  18/03/12  
8    dfgd    cat3  12/03/12  
9    uiuou   cat1  14/03/12  
10   ghj     cat4  11/03/12  

所以,我需要这样的东西:

ID      TITLE   CAT     DATE
----------------------------------
5   dgdg    cat1    18/03/2012  
6   dfgd    cat1    15/03/2012  
3   asg cat2    13/03/2012  
2   sdfs    cat2    12/03/2012  
7   dgdgd   cat3    18/03/2012  
8   dfgd    cat3    12/03/2012  

提前谢谢。

1 个答案:

答案 0 :(得分:1)

这个怎么样,cat是表的名称。

SELECT cat.ID, cat.TITLE, cat.CAT, cat.DATE
FROM cat
WHERE cat.ID In (
   SELECT TOP 2 id 
   FROM cat c
   WHERE cat.cat = c.cat  
   ORDER BY [date] DESC,id)
ORDER BY cat.CAT, cat.DATE;