2015-10-20 101 views
0

我有一个像这样的临时表。 enter image description here枢轴查询SQL重复行

然后我使用以下查询和附加的输出来旋转该表。

SELECT * 
FROM (
    SELECT * from @tmpTable2 
) AS SourceTable 
PIVOT 
(
max(timec) 
FOR eventb 
IN (
[Veh Reg Time],[Fitness ok time],[RFID Issue time],[MG-IN],[WB IN], 
[MG-OUT],  [WB OUT] 
) 
) AS PivotTableAlias 

enter image description here

在这里的问题是一个 'REGNO' 有多个记录。但是我只想要一行'RegNo'。 我该如何做到这一点?

预计应该是这样的。 enter image description here

+1

我想'DISTINCT'会帮助你或'GROUP BY' – wiretext

+0

如何使用不同的此查询? – Tom

+0

ok在此处发布您的预期输出结果 – wiretext

回答

1
SELECT * 
FROM (
    SELECT regno,eventb,timec,rfid from @tmpTable2 
) AS SourceTable 
PIVOT 
(
max(timec) 
FOR eventb 
IN (
[Veh Reg Time],[Fitness ok time],[RFID Issue time],[MG-IN],[WB IN], 
[MG-OUT],  [WB OUT] 
) 
) AS PivotTableAlias 
0
SELECT pt.regno, pt.rfid, MAX(vrt), MAX(fot), MAX(rit), MAX(MI), MAX(wi), MAX(Mo), MAX(wo) FROM (
SELECT * 
FROM (
    SELECT * from @temtable2 t 
) SourceTable 
PIVOT 
(
max(timec) 
FOR eventb 
IN('Veh Reg Time' AS vrt,'Ftness Ok time' AS fot, 'RFID Issue time' AS rit, 'MG-IN' AS mi, 'WB IN' AS wi, 'MG-OUT' AS mo, 'WB OUT' AS wo) 
) PivotTableAlias) pt 
GROUP BY pt.regno, pt.rfid