【问题标题】:How can I get a pivot table with concatenated values?如何获得具有连接值的数据透视表?
【发布时间】:2015-10-07 22:54:01
【问题描述】:

我有以下数据:

|   ID     |   TYPE   |  USER_ID |
|----------|----------|----------|
|        1 |        A |        7 |
|        1 |        A |        8 |
|        1 |        B |        6 |
|        2 |        A |        9 |
|        2 |        B |        5 |

我正在尝试创建要返回的查询

|   ID     |   RESULT |
|----------|----------|
|        1 |  7, 8, 6 |
|        2 |     9, 5 |

USER_ID 值必须按 TYPE 属性排序。

由于我使用的是 MS ACCESS,因此我正在尝试调整。我试过的:

TRANSFORM first(user_id)
SELECT id, type
FROM mytable
GROUP BY id, type
ORDER BY type
PIVOT user_id

错误:

交叉表列标题过多 (4547)。

我在语法中遗漏了一些东西。但是,这似乎是错误的,因为需要将 first() 聚合更改为其他内容以连接结果。

PS:我使用的是 MS-ACCESS 2007。如果您知道仅使用 SQL(没有供应商函数或存储过程)的 SQL-Server 或 Oracle 解决方案,我可能会接受您的回答,因为它可以帮助我找到解决这个问题的办法。

【问题讨论】:

    标签: sql ms-access ms-access-2007 pivot-table


    【解决方案1】:

    您不想使用 PIVOT。 Pivot 将创建一个以您的每个用户 ID (1 - 7) 命名的。您的 TYPE 字段似乎也没有任何作用。

    很遗憾,在 SQL Server 中执行此操作需要使用 Access 中不可用的 functionFOR XML 路径)。

    这是一个带有similar Access function 的链接,可以做类似的事情。

    【讨论】:

      猜你喜欢
      • 2015-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-28
      相关资源
      最近更新 更多