2017-05-30 28 views
1

我有这个表(列和记录截断清晰度):SQL将多行字段为1点的记录基于不同领域

StartHour WorkstationName 
--------- --------------- 
4   Wigets1 
19  Wigets2 

,我想有只值1,记录结果从StartHour这两个行,所以我的结果将是

Wigets1 Wigets2 
--------- --------- 
4   19 

,我有这个疑问现在:

SELECT Wigets1, Wigets2 
FROM (SELECT * FROM InspectorApp 
WHERE WorkstationName IN ('Wigets1', 'Wigets2')) innerselect 
PIVOT(MAX(StartHour) FOR WorkstationName IN ([Wigets1], [Wigets2])) pvt 

但我得到的

EarlyPipe LgLnStart 
--------- --------- 
NULL  19 
4   NULL 

我怎样才能摆脱NULL这儿的结果?

回答

2

pivot很挑剔。只需在子查询中选择需要的列:

SELECT Wigets1, Wigets2 
FROM (SELECT WorkstationName, StartHour 
     FROM InspectorApp 
     WHERE WorkstationName IN ('Wigets1', 'Wigets2') 
    ) innerselect 
PIVOT(MAX(StartHour) FOR WorkstationName IN ([Wigets1], [Wigets2])) pvt; 

PS。为什么我更喜欢使用条件聚合进行透视的另一个原因。

+0

美丽!完美的作品。 (将在10分钟内接受答案) – Conrad