Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menggabungkan Penyata SQL SELECT Berbilang untuk Mengira Tugas dan Tugasan Lewat?

Bagaimana untuk Menggabungkan Penyata SQL SELECT Berbilang untuk Mengira Tugas dan Tugasan Lewat?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-08 22:29:44244semak imbas

How to Combine Multiple SQL SELECT Statements to Count Tasks and Late Tasks?

Menggabungkan Berbilang Pernyataan SELECT SQL: Contoh Praktikal

Panduan ini menunjukkan cara menggabungkan hasil berbilang penyataan SQL SELECT dengan cekap ke dalam satu jadual yang komprehensif. Kami akan menggunakan pangkalan data pengurusan tugas sebagai contoh. Setiap rekod tugasan termasuk butiran seperti tarikh akhir, hari sehingga tarikh akhir (PALT) dan umur (hari sejak penciptaan). Matlamatnya adalah untuk menjana laporan yang menunjukkan, untuk setiap orang, jumlah kiraan tugas mereka dan bilangan tugas yang tertunggak.

Pertanyaan individu untuk mengira jumlah tugasan dan tugas lewat mungkin kelihatan seperti ini:

<code class="language-sql">SELECT ks, COUNT(*) AS "Total Tasks" FROM Table GROUP BY ks;</code>
<code class="language-sql">SELECT ks, COUNT(*) AS "Overdue Tasks" FROM Table WHERE Age > Palt GROUP BY ks;</code>

Untuk menggabungkan hasil carian ini, kami menggunakan LEFT JOIN. Ini memastikan semua orang daripada jumlah kiraan tugas disertakan, walaupun mereka tidak mempunyai tugas tertunggak.

<code class="language-sql">SELECT t1.ks, t1."Total Tasks", COALESCE(t2."Overdue Tasks", 0) AS "Overdue Tasks"
FROM 
    (SELECT ks, COUNT(*) AS "Total Tasks" FROM Table GROUP BY ks) t1
LEFT JOIN
    (SELECT ks, COUNT(*) AS "Overdue Tasks" FROM Table WHERE Age > Palt GROUP BY ks) t2
ON t1.ks = t2.ks;</code>

Fungsi COALESCE mengendalikan kes di mana seseorang tidak mempunyai tugas tertunggak (mengakibatkan NULL daripada LEFT JOIN), menggantikan NULL dengan 0 untuk kejelasan. Jadual akhir akan menunjukkan ks (ID orang), "Jumlah Tugasan" dan "Tugas Tertunggak". LEFT JOIN memastikan semua individu disenaraikan, tidak kira sama ada mereka mempunyai tugas tertunggak.

Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Penyata SQL SELECT Berbilang untuk Mengira Tugas dan Tugasan Lewat?. 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