小编Sco*_*ure的帖子

在SQL Server中"旋转"非聚合数据

这将是我在这里发布的第一个问题,因此请原谅任何无意识的董事会礼仪失误.

在我当前的项目中,我采用了一个非规范化的大型表,并将其分解为四个独立的规范化表.我接触到这个板的最终目标是创建一个模拟非规范化表以便向后兼容的视图.

为了提供我的场景的简化快照,我正在尝试做的关键在于两个表:

ASSOC_ROLE          ASSOCIATE
----------          ----------
assoc_id (fk)       assoc_id (pk)
role_id  (fk)       last_name
org_nbr  (fk)
Run Code Online (Sandbox Code Playgroud)

所以,如果我发出以下查询......

SELECT Assoc_Role.org_nbr, Assoc_Role.assoc_id, Associate.last_name, Assoc_Role.role_id
FROM Assoc_Role INNER JOIN
     Associate ON Assoc_Role.assoc_id = Associate.assoc_id
WHERE Assoc_Role.org_nbr = '1AA'
Run Code Online (Sandbox Code Playgroud)

...我得到以下结果集

org_nbr     assoc_id     last_name     role_id
-------     --------     ---------     -------
1AA         1447         Cooper        1
1AA         1448         Collins       3
1AA         1448         Collins       4
1AA         1448         Collins       5
1AA         1449         Lynch         6
Run Code Online (Sandbox Code Playgroud)

最终,我想构建的视图看起来像这样:

org_nbr   role1_ID   role1_name   role2_ID   role2_name   role3_ID   role3_name   role4_ID   role4_name   role5_ID   role5_name   role6_ID   role6_name
-------   -------- …
Run Code Online (Sandbox Code Playgroud)

sql pivot sql-server-2005

6
推荐指数
1
解决办法
1198
查看次数

标签 统计

pivot ×1

sql ×1

sql-server-2005 ×1