2012-04-11 130 views
1

我无法在MS Access SQL上解决此问题。MSAccess:从每个类别中选择N条记录

我有一个表与此字段: ID,标题,类别,日期

我需要显示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

这个怎么样,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; 
+0

我的思想在流浪。 – Fionnuala 2012-04-11 13:40:40

+0

@感谢您的投票。我进行了回滚,因为Access的一个有趣的怪癖是,只要您在表格或别名前面加上前缀,就可以使用不带方括号的保留字。这是我试图在这里和那里的帖子中以小的方式得到的一点:) – Fionnuala 2012-04-11 13:55:36

+0

完全按照我的想象工作。令人沮丧的是,我无法解决这个问题。非常感谢你! – Jaume 2012-04-17 09:21:17