Heim >Datenbank >MySQL-Tutorial >Wie kann die UNION-Operation von SQL Stunden aus mehreren Tabellen konsolidieren?

Wie kann die UNION-Operation von SQL Stunden aus mehreren Tabellen konsolidieren?

Susan Sarandon
Susan SarandonOriginal
2025-01-04 15:05:41183Durchsuche

How Can SQL's UNION Operation Consolidate Hours from Multiple Tables?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn