Rumah >pangkalan data >tutorial mysql >Bagaimanakah Kami Boleh Menggabungkan Jadual KnownHours dan UnknownHours untuk Laporan Waktu Bersepadu?

Bagaimanakah Kami Boleh Menggabungkan Jadual KnownHours dan UnknownHours untuk Laporan Waktu Bersepadu?

DDD
DDDasal
2024-12-29 08:32:14334semak imbas

How Can We Combine KnownHours and UnknownHours Tables for a Unified Hours Report?

Menggabungkan Jadual untuk Output Bersatu

Pengenalan:
Apabila berurusan dengan berbilang jadual, ia menjadi perlu untuk menggabungkan mereka untuk menyediakan output yang komprehensif dan bermakna. Menggabungkan jadual melibatkan teknik seperti pencantuman, penyatuan dan pengagregatan.

Pernyataan Masalah:
Tugas di tangan adalah untuk menggabungkan dua jadual, KnownHours dan UnknownHours, menjadi satu output yang kumpulan jam mengikut ChargeNum dan CategoryID, mengabaikan Bulan.

Butiran Jadual:

Table Column Description
KnownHours ChargeNum Unique charge number
KnownHours CategoryID Category associated with the charge
KnownHours Month Month when the charge was incurred
KnownHours Hours Known hours for the charge
UnknownHours ChargeNum Unique charge number
UnknownHours Month Month when the charge was incurred
UnknownHours Hours Unknown hours for the charge

Output yang Diingini:
Output yang dijangkakan ialah satu jadual dengan struktur berikut:

Table Column Description
Consolidated ChargeNum Unique charge number
Consolidated CategoryID Category associated with the charge or 'Unknown'
Consolidated Hours Total hours for the charge

Penyelesaian:
Untuk mencapai output yang dikehendaki, kami akan menggunakan operasi UNION dalam SQL. UNION menggabungkan hasil berbilang pertanyaan ke dalam satu jadual. Dalam kes ini, kami akan menjalankan dua pertanyaan, satu untuk jadual KnownHours dan satu untuk jadual UnknownHours. Pertanyaan akan mengagregatkan waktu untuk setiap ChargeNum dan CategoryID (dan 'Tidak Diketahui' untuk UnknownHours).

Pertanyaan pertama untuk jadual KnownHours:

SELECT ChargeNum, CategoryID, SUM(Hours)
FROM KnownHours
GROUP BY ChargeNum, CategoryID

Pertanyaan kedua untuk jadual UnknownHours :

SELECT ChargeNum, 'Unknown' AS CategoryID, SUM(Hours)
FROM UnknownHours
GROUP BY ChargeNum

Akhir sekali, kami akan menggabungkan hasil kedua-dua pertanyaan ini menggunakan UNION ALL:

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

Operasi UNION ALL ini akan menggabungkan hasil dua pertanyaan ke dalam satu jadual, memberikan output yang diingini.

Atas ialah kandungan terperinci Bagaimanakah Kami Boleh Menggabungkan Jadual KnownHours dan UnknownHours untuk Laporan Waktu Bersepadu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn