1

我无法在 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  

先感谢您。

4

1 回答 1

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;
于 2012-04-11T11:39:04.133 回答