如何在多个字段上转动?

时间:2013-12-17 01:22:26

标签: sql ms-access ms-access-2010

我有一张这样的表:

+----+--------+------------+----------+
| ID |  Item  |    Date    | Category |
+----+--------+------------+----------+
|  1 | xyz    | 3/12/2013  | A        |
|  2 | xyz    | 3/23/2013  | A        |
|  3 | j423   | 4/19/2013  | C        |
|  4 | 9d98df | 4/16/2013  | B        |
|  5 | j423   | 5/13/2013  | C        |
+----+--------+------------+----------+

我希望按Date(按月)和Category对数据进行分组,如下所示:

       3/2013    | 4/2013
Item   A | B | C | A | B | C
xyz      |   |   |   |   |    
j423     |   |   |   |   |
9d98df   |   |   |   |   |

我知道我可以通过一个函数将数据分组,该函数将日期作为月/年返回,然后在月份字段上转动,我可以创建一个复合键字段,例如。

select item, getMonth(date) & category as month_category from myTable

然后转向month_category给我:

Item   A_3/2013 | B_3/2013 | C_3/2013 | A_4/2013 | B_4/2013 | C_4/2013
xyz             |          |          |          |          |    
j423            |          |          |          |          |    
9d98df          |          |          |          |          |    

但是这不会给我一个报告,我有上面显示的两层列。有没有办法在Access中执行此操作?或者我坚持使用复合列名称?

2 个答案:

答案 0 :(得分:1)

  

我坚持使用复合列名称

您在交叉表查询中“卡住”了复合列名称,但如果您愿意,可以使用具有多个堆叠标签的组标题格式化报表。请勿将 数据 (查询返回的结果)与 数据显示 混淆(报告布局)。

答案 1 :(得分:0)

不,使用双线标头进行透视查询是不可能的。要显示数据,请使用MS Access报告。我建议以这种方式创建数据透视查询数据:

Item  | Month  |A | B | C |
xyz   | 3/2013 |  |   |   |
xyz   | 4/2013 |  |   |   |

然后,您就可以对月/项目上的数据进行分组或汇总。

有关详细信息,请参阅:
Create a grouped or summary report
Grouping records on date/time values in an Access report