首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按年间隔选择MS访问

按年间隔选择MS访问
EN

Stack Overflow用户
提问于 2014-08-14 06:08:39
回答 2查看 59关注 0票数 0

我有一个表,其中每一行都有自己的日期(购买年份),我应该选择按年份分组的采购。

示例:

代码语言:javascript
复制
Zetor 1993
Zetor 1993
JOHN DEERE 2001
JOHN DEERE 2001
JOHN DEERE 2001

这意味着我在1993年购买了2辆zetor,在2001年买了3辆john。我应该选择按这些年间隔分组的pruchases的计数:

代码语言:javascript
复制
<=1959
1960-1969
1970-1979
1980-1989
1990-1994
1995-1999
2000-2004
2004-2009
2010-2013

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

代码语言:javascript
复制
<=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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-14 07:59:46

创建具有间隔的表:

代码语言:javascript
复制
tblRanges([RangeName],[Begins],[Ends])

用你的间隔填充它

在表tblPurchases中使用GROUP BY (Item,YearOfDeal):

代码语言:javascript
复制
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;
票数 2
EN

Stack Overflow用户

发布于 2014-08-14 12:08:47

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

代码语言:javascript
复制
SELECT Partition([Year],1960,2014,10) AS [Group], Count(Stock.Year) AS CountOfYear
FROM Stock
GROUP BY Partition([Year],1960,2014,10)

输入:

代码语言:javascript
复制
Tractor Year
Zetor   1993
Zetor   1993
JOHN DEERE  2001
JOHN DEERE  2001
JOHN DEERE  2001
Pre 59  1945
1960    1960

结果:

代码语言:javascript
复制
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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25301128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档