habe ich eine Pivot-Tabelle die folgende Abfrage in SQL Server 2016.SQL Server 2016 Merge Zeilen in Pivot-Tabellen
mitWITH PivotData AS
(
select [T_Spec_Char].[ID],
format([T_Sample].[TimeStamp], 'dd/MM/yyyy') as DT,
format([T_Sample].[TimeStamp], 'hh:mm:ss') as TM,
[T_Spec_Char].[Spec_Char],
[T_Spec].[Line],
cast([T_Sample].[Value] as float) as Val
from [ABC].[dbo].[T_Spec_Char], [ABC].[dbo].[T_Sample], [ABC].[dbo].[T_Spec]
where [T_Sample].[Spec_Char_ID] = [T_Spec_Char].[ID] and
([T_Spec_Char].[Spec_Char] = 'Zone1Temp' or [T_Spec_Char].[Spec_Char] = 'Zone2Temp'
or [T_Spec_Char].[Spec_Char] = 'Zone3Temp')
and [T_Sample].[Spec_ID] = [T_Spec].[ID]
group by [T_Spec_Char].[ID], [T_Sample].[TimeStamp], [T_Spec_Char].[Spec_Char],
[T_Spec].[Line], [T_Sample].[Value]
)
SELECT
DT,
TM,
[Line],
Zone1Temp,
Zone2Temp,
Zone3Temp
FROM PivotData
PIVOT
(
SUM(Val)
FOR Spec_Char
IN (Zone1Temp, Zone2Temp, Zone3Temp)
) AS PivotResult
ORDER BY DT, TM
Das Ergebnis ist wie folgt:
DT TM Line Zone1Temp Zone2Temp Zone3Temp
07/02/2017 01:21:55 Line2 310 NULL NULL
07/02/2017 01:21:55 Line2 NULL 330 NULL
07/02/2017 01:21:55 Line2 NULL NULL 345
07/02/2017 01:51:56 Line2 310 NULL NULL
07/02/2017 01:51:57 Line2 NULL 330 NULL
07/02/2017 01:51:57 Line2 NULL NULL 345
07/02/2017 02:21:56 Line2 310 NULL NULL
07/02/2017 02:21:56 Line2 NULL 330 NULL
07/02/2017 02:21:56 Line2 NULL NULL 345
07/02/2017 02:51:56 Line2 310 NULL NULL
07/02/2017 02:51:56 Line2 NULL 330 NULL
07/02/2017 02:51:56 Line2 NULL NULL 345
07/02/2017 03:21:56 Line2 310 NULL NULL
07/02/2017 03:21:56 Line2 NULL 330 NULL
07/02/2017 03:21:58 Line2 NULL NULL 345
07/02/2017 03:51:56 Line2 310 NULL NULL
07/02/2017 03:51:57 Line2 NULL 330 NULL
07/02/2017 03:51:57 Line2 NULL NULL 345
Wie würde ich fusionieren die Zeilen mit demselben Datum und derselben Uhrzeit, z. B. die ersten drei Zeilen im Abfrageergebnis, in eine Zeile?
@Noxthron. Ihre Abfrage ergibt folgendes:
DT TM Line Temp
07/02/2017 01:21:55 Line2 310
07/02/2017 01:21:55 Line2 330
07/02/2017 01:21:55 Line2 345
07/02/2017 01:51:56 Line2 310
I would like to be able to see:
DT TM Line Zone1Temp Zone2Temp Zone3Temp
07/02/2017 01:21:55 Line2 310 330 345
Bitte keine Bilder verwenden, um Ihre Daten oder Abfrageergebnisse anzuzeigen. – STLDeveloper
STLDeveloper, Bildwechsel oben, dank Liste. –
.... bitte wechseln sie von der impliziten-Join-Syntax (comma Separated 'FROM' Klausel) explizit die Auflistung schließt sich und ihre Bedingungen. es macht es viel mehr klar, welche Elemente gehören, welche Tabellen (die 'WHERE'-Klausel sollte hauptsächlich für die primäre Filterung der Tabelle in der ursprünglichen' FROM'-Klausel verwendet werden, und das ist es). Wenn Sie nach jeder Spalte in Ihrem 'SELECT' gruppieren, dann haben Sie wirklich' DISTINCT' gemeint, obwohl es normalerweise besser ist um herauszufinden, wo Duplikate kommen von und hören stattdessen auf. –