如何获得具有连接值的数据透视表?

时间:2015-10-07 22:54:01

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

我有以下数据:

|   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的解决方案,我可能会接受您的回答,因为它会帮助我找到解决这个问题的方法。

1 个答案:

答案 0 :(得分:1)

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

不幸的是,在SQL Server中执行此操作需要使用访问中未提供的function FOR XML路径)。

这是一个与similar Access function相关联的链接。