【问题标题】:How to pivot on multiple fields? [duplicate]如何在多个领域进行支点? [复制]
【发布时间】:2013-12-30 00:25:32
【问题描述】:

我有一张这样的桌子:

+----+--------+------------+----------+
| 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 中做到这一点?还是我坚持使用复合列名称?

【问题讨论】:

  • 这是一个查询吗?还是报告?
  • @Lisa:我会采取任何方法让我以两层列格式呈现数据。使用查询我只能有一行列标题,所以它必须是一个报告,对吧?
  • 是的,它必须是一份报告。不过,MS Access 确实有一个报告向导来引导您完成整个过程。
  • 您希望从上述 Pivot 中获得哪些价值?按类别和月份销售的商品的简单计数?
  • 您要聚合哪个字段?我没见过;(

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


【解决方案1】:

我是否坚持使用复合列名称

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

【讨论】:

    【解决方案2】:

    不,不可能使用两行标题获取数据透视查询。要显示数据,请使用 MS Access 报告。我建议以这种方式创建数据透视查询数据:

    项目 |月 |A |乙| C | xyz | 3/2013 | | | | xyz | 4/2013 | | | |

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

    更多信息请见:
    Create a grouped or summary report
    Grouping records on date/time values in an Access report

    【讨论】:

      猜你喜欢
      • 2017-10-27
      • 2014-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多