我有一个表,其中每一行都有自己的日期(购买年份),我应该选择按年份分组的采购。
示例:
Zetor 1993
Zetor 1993
JOHN DEERE 2001
JOHN DEERE 2001
JOHN DEERE 2001这意味着我在1993年购买了2辆zetor,在2001年买了3辆john。我应该选择按这些年间隔分组的pruchases的计数:
<=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发布于 2014-08-14 07:59:46
创建具有间隔的表:
tblRanges([RangeName],[Begins],[Ends])用你的间隔填充它
在表tblPurchases中使用GROUP BY (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;发布于 2014-08-14 12:08:47
您可能希望考虑将来使用分区:
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
https://stackoverflow.com/questions/25301128
复制相似问题