我无法在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
提前谢谢。
答案 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;