在sql server数据库中具有下表:
我的目标是根据类型列旋转“左”、“右”、“中”,并得出以下输出:
我只能使用pivot查询对一列(如左)执行上述操作,如下所示:
我得到的订单是:
需要帮助来驱动第二个图屏幕截图中给出的表。
创建表的ddl脚本:
Create Table ssis.PivotTable
(
[System] VARCHAR(20)
, Corridor VARCHAR(20)
, RouteId VARCHAR(20)
, [Left] VARCHAR(20)
, [Right] VARCHAR(20)
, [Centre] VARCHAR(20)
, [Type] VARCHAR(20))
GO
INSERT INTO ssis.PivotTable VALUES
('Disrupted', NULL, 'WFG-231', '2', '3', '4', 'ABW')
GO
INSERT INTO ssis.PivotTable VALUES
('Disrupted', NULL, 'WFG-231', '3', '4', '4', 'AwW')
GO
INSERT INTO ssis.PivotTable VALUES
('Disrupted', NULL, 'WFG-231', '3', '2', '3', 'AEG')
我编写的透视查询
SELECT [System], Corridor, [RouteId], PivotTable.ABW AS ABW_Left, PivotTable.AwW AS AWW_Left, PivotTable.AEG AS AEG_Left
FROm (SELECT [System], Corridor, [RouteId],[Left], [Type] FROM ssis.PivotTable) AS SourceQuery
PIVOT
(MAX([Left]) FOR [Type] in (ABW, AwW, AEG)) AS PivotTable
1条答案
按热度按时间wsxa1bj11#
你可以试试下面的方法-
演示