MS Access按年间隔选择

时间:2014-08-14 06:08:40

标签: sql date ms-access select

我有一张桌子,每一行都有自己的日期(购买年份),我应该选择按年间隔分组的购买。

示例:

Zetor 1993
Zetor 1993
JOHN DEERE 2001
JOHN DEERE 2001
JOHN DEERE 2001

意味着我在1993年购买了2次zetor,在2001年购买了3次john deere。我应该选择按年度间隔分组的购买数量:

<=1959
1960-1969
1970-1979
1980-1989
1990-1994
1995-1999
2000-2004
2004-2009
2010-2013

我不知道该怎么做。 结果在上面的示例中应如下所示:

<=1959
1960-1969 0
1970-1979 0
1980-1989 0
1990-1994 2
1995-1999 0
2000-2004 3
2004-2009 0
2010-2013 0

2 个答案:

答案 0 :(得分:2)

创建包含间隔的表:

tblRanges([RangeName],[Begins],[Ends])

用您的间隔填充

将GROUP BY与您的表tblPurchases([Item],YearOfDeal)一起使用:

SELECT tblRanges.RangeName, Count(tblPurchases.YearOfDeal) 
FROM tblRanges INNER JOIN tblPurchases ON (tblRanges.Begins <= tblPurchases.Year) AND (tblRanges.Ends >= tblPurchases.YearOfDeal)
GROUP BY tblRanges.RangeName;

答案 1 :(得分:2)

您可能希望考虑分区以备将来使用:

SELECT Partition([Year],1960,2014,10) AS [Group], Count(Stock.Year) AS CountOfYear
FROM Stock
GROUP BY Partition([Year],1960,2014,10)

输入:

Tractor Year
Zetor   1993
Zetor   1993
JOHN DEERE  2001
JOHN DEERE  2001
JOHN DEERE  2001
Pre 59  1945
1960    1960

结果:

Group   CountOfYear
    :1959   1
1960:1969   1
1990:1999   2
2000:2009   3

参考:http://office.microsoft.com/en-ie/access-help/partition-function-HA001228892.aspx