Heim >Datenbank >MySQL-Tutorial >Wie kann die UNION-Operation von SQL Stunden aus mehreren Tabellen konsolidieren?
Tabellen für eine konsolidierte Ausgabe kombinieren
Im Bereich der Datenmanipulation ist das Zusammenführen mehrerer Tabellen zu einer einzigen zusammenhängenden Ausgabe eine häufige Herausforderung. Stellen Sie sich das Szenario vor, in dem Sie über zwei Tabellen verfügen, KnownHours und UnknownHours, die jeweils Gebührennummern, Kategorien, Monate und geleistete Arbeitsstunden enthalten. Das Ziel besteht darin, die Stunden ohne Berücksichtigung des Monats zu aggregieren, um eine konsolidierte Ansicht zu erhalten.
Um dies zu erreichen, können Sie die Leistungsfähigkeit der UNION-Operation von SQL nutzen. Dadurch können Sie die Ergebnisse mehrerer Abfragen in einem einzigen Datensatz kombinieren. In diesem speziellen Fall müssen Sie die Stunden nach Gebührennummer und Kategorie gruppieren und dabei die Aggregatfunktion SUM() verwenden.
Die SQL-Abfrage, um dies zu erreichen, lautet wie folgt:
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;
Hier kombiniert das Schlüsselwort UNION ALL die Ergebnisse zweier separater Abfragen. Die erste Abfrage ruft Stunden aus der Tabelle „KnownHours“ ab und gruppiert sie nach Gebührennummer und Kategorie. Die zweite Abfrage ruft Stunden aus der UnknownHours-Tabelle ab und behandelt sie als zu einer „Unbekannt“-Kategorie gehörend.
Durch die Verwendung von UNION ALL entfällt der Duplikatprüfungsschritt, was zu einer besseren Leistung im Vergleich zur alleinigen Verwendung von UNION führt.
Das Ergebnis dieser Abfrage ist eine konsolidierte Tabelle, die die Gesamtarbeitsstunden für jede Chargennummer und -kategorie bereitstellt, unabhängig vom Monat, in dem sie angefallen sind.
Das obige ist der detaillierte Inhalt vonWie kann die UNION-Operation von SQL Stunden aus mehreren Tabellen konsolidieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!