JOIN - Ergebnis in Spalten statt in Zeilen

cat_sql

Benutzer
Beiträge
5
Hallo, ich würde etwas Hilfe benötigen.
Ich habe zwei Tabellen (hier nur mit den relevanten Feldern) und möchte aus der Protokollierungstabelle zu jeder Rechnung jeweils den Zeitpunkt von StatusID 3 und 4.

Tabelle Rechnungen
RechnungsnummerInterneID
100678
101754
102876

Tabelle Protokollierung
InterneIDStatusIDZeitpunkt
67812022-10-07 09:30:55.0000000
67822022-10-08 10:30:55.0000000
67832022-10-19 09:30:55.0000000
75412022-10-06 09:30:55.0000000
75422022-10-07 09:30:55.0000000
75432022-10-08 09:30:55.0000000
75442022-10-09 09:30:55.0000000
87612022-10-05 09:30:55.0000000
87622022-10-08 09:30:55.0000000
87632022-10-09 09:30:55.0000000
87642022-10-15 09:30:55.0000000

Gewünschtes Ergebnis
RechnungsnummerInterneIDZeitpunktStatusID3ZeitpunktStatusID4
1006782022-10-19 09:30:55.0000000
1017542022-10-08 09:30:55.00000002022-10-09 09:30:55.0000000
1028762022-10-09 09:30:55.00000002022-10-15 09:30:55.0000000

Mir ist grundsätzlich klar, wie ich die beiden Tabellen verknüpfe, aber wie bekomme ich nur eine Zeile pro Rechnung und die Werte aus der Tabelle Protokollierung in die Spalten?

SQL:
SELECT r.Rechnungsnummer, r.InterneID, p.Zeitpunkt
FROM Rechnung r
LEFT JOIN Protokollierung P ON r.InterneID = p.InterneID
WHERE p.StatusID IN (3,4)
 
Werbung:
Werbung:
@t-sql Danke, ich hab's.

SQL:
SELECT ReNr, [3], [4]
FROM (
      SELECT r.Rechnungsnummer as ReNr, p.StatusID as StatID, p.Zeitpunkt Zeit
      FROM Rechnung r
      LEFT JOIN Protokollierung p ON r.InterneID = p.InterneID
      WHERE p.StatusID IN (3,4)
     ) AS t
PIVOT(
      MIN(Zeit)
      FOR StatID IN ([3], [4])
      ) AS pivot_table
 
Zurück
Oben