【发布时间】:2015-09-09 08:21:05
【问题描述】:
我的桌子是这样的
我想将这些行转为表头。
如果我使用:
SELECT [USER],[DIVISION], [COMPANY],[RIGHTS] FROM
(SELECT [USER],[ATTRIBUTE],[VALUE],[RIGHTS] FROM [AGDA_MANUAL].[dbo].[TEST] WHERE [PROC] = 'FINANCE' ) AS T1
PIVOT (MAX([VALUE]) FOR [ATTRIBUTE] IN ([DIVISION],[COMPANY])) AS T2
这就是几乎我想要的
但是有没有办法不在枢轴中使用 MAX?当我使用 MAX 时,我失去了 DOMAIN\USER1 的 DIVSION 010 和 COMPANY 1 ??。
谁能帮帮我?
****更新*************
我错过了我需要的一列,因为我最终会得到更多行(正如你们中的一个所说)。
【问题讨论】:
-
微软 SQL Server 2012
-
您能否根据您的示例数据阐明您想要什么输出?
-
您确实需要更详细地了解您在这里尝试做什么,目前它既模棱两可和/或看起来您的模型可能不完整。具体来说,User1 的结果应该是什么?我可以看到 User1 的 四个 部门和公司组合;
023, 1和023, 2和010, 1和010, 2。所有人都碰巧拥有admin权限,但是如果rights中的一行或多行具有不同的值,您没有给出指示。
标签: sql tsql sql-server-2012 pivot