将组记录并在一行中显示每个记录值

问题描述:

我在通过MS访问中的查询使用组时遇到问题。 我有如下表结构。将组记录并在一行中显示每个记录值

Number Date    Marks 
1   2011/3/25   20 
1   2012/3/21   50  
1   2013/3/22   22 
1   2014/3/25   56 

我想告诉像下面

Number  march-2011 march-2012 march-2013 
1   20   50   22 

任何人都可以请帮我这个数据。我如何在ms-access中使用查询来做到这一点。我是ms-access的新手。

+0

貌似你试图(是吗?)来创建数据透视表。 [这个问题](http://*.com/questions/17591221/pivot-table-in-access)关于同一主题可能会提供一些见解,可能会像[this]这样的教程(http://dotnet.tech。 ubc.ca/CourseWiki/index.php?title=Access_2010_PivotTable)或[this](https://www.youtube.com/watch?v=ZgerpTHzQes)。 – GolezTrol 2014-12-07 10:44:33

+0

@ GolezTrol:它甚至可以使用查询吗? – user3407459 2014-12-07 11:08:00

+0

我不确定。这是一个相当先进的主题,即使在像Oracle和MySQL这样的'大'数据库中,这也是一项艰巨的工作。 – GolezTrol 2014-12-07 11:12:10

这个查询只需要有条件聚集:

select number, 
     sum(iif(year(date) = 2011 and month(date) = 3, Marks, 0)) as March2011, 
     sum(iif(year(date) = 2012 and month(date) = 3, Marks, 0)) as March2012, 
     sum(iif(year(date) = 2013 and month(date) = 3, Marks, 0)) as March2013 
from table 
group by number;