【问题标题】:MS Access selecting by year intervalsMS Access 按年份间隔选择
【发布时间】:2014-08-14 06:08:39
【问题描述】:

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

例子:

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

【问题讨论】:

    标签: sql date ms-access select


    【解决方案1】:

    创建带间隔的表格:

    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;
    

    【讨论】:

      【解决方案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

      【讨论】:

      • 我想我将来会使用这个解决方案或你的解决方案!但是现在我需要已经被接受的解决方案,因为有些间隔是 5 年,有些是 10 年。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多