Kombinieren von zwei Tabellen für eine einzige Ausgabe
Datenbankoperationen erfordern oft das Zusammenführen von Daten aus mehreren Quellen zu einer zusammenhängenden Ausgabe. Eine häufige Herausforderung besteht darin, Tabellen mit ähnlichen Strukturen, aber unterschiedlichen Kategorien zu kombinieren. Betrachten Sie das folgende Problem:
Sie haben zwei Tabellen, „KnownHours“ und „UnknownHours“, mit Spalten einschließlich ChargeNum (eine eindeutige Kennung), CategoryID (eine Kategoriezuweisung), Monat (ein Datum) und Stunden ( der tatsächliche Wert). Die Aufgabe besteht darin, diese Tabellen unter Ignorierung der Monatsspalte in einer einzigen Datentabelle zu kombinieren und die Stunden nach ChargeNum und CategoryID zu gruppieren.
Die erwartete Ausgabe ist:
ChargeNum CategoryID Hours 111111 1 90 111111 2 50 111111 Unknown 110.5 222222 1 40 222222 Unknown 25.5
Um dies zu erreichen können wir den UNION-Operator verwenden, der die Ergebnisse zweier Abfragen kombiniert. Für dieses Problem erstellen wir zwei Abfragen:
Abfrage 1:
SELECT ChargeNum, CategoryID, SUM(Hours) FROM KnownHours GROUP BY ChargeNum, CategoryID
Diese Abfrage ruft jeweils die ChargeNum, CategoryID und die Summe der Stunden ab Kombination aus der Tabelle „KnownHours“.
Abfrage 2:
SELECT ChargeNum, 'Unknown' AS CategoryID, SUM(Hours) FROM UnknownHours GROUP BY ChargeNum
Diese Abfrage ruft die ChargeNum und die Summe der Stunden für jeden Eintrag in der Tabelle „UnknownHours“ ab und weist „Unknown“ als Kategorie-ID zu.
Kombiniert beides Abfragen mit UNION ALL erzeugen die gewünschte Ausgabe:
SELECT ChargeNum, CategoryID, SUM(Hours) FROM KnownHours GROUP BY ChargeNum, CategoryID UNION ALL SELECT ChargeNum, 'Unknown' AS CategoryID, SUM(Hours) FROM UnknownHours GROUP BY ChargeNum
Der UNION ALL-Operator führt die Ergebnisse zusammen, ohne Duplikate zu entfernen. Bereitstellung einer vollständigen Ansicht der kombinierten Daten.
Das obige ist der detaillierte Inhalt vonWie kann ich zwei Tabellen mit ähnlichen Strukturen, aber unterschiedlichen Kategorien in einer einzigen Ausgabetabelle kombinieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!