Rumah > pangkalan data > tutorial mysql > Bagaimanakah Pertanyaan SQL Tunggal Dapat Mendapatkan Jumlah Berbeza Berdasarkan Keadaan Klausa Berbilang WHERE?

Bagaimanakah Pertanyaan SQL Tunggal Dapat Mendapatkan Jumlah Berbeza Berdasarkan Keadaan Klausa Berbilang WHERE?

Mary-Kate Olsen
Lepaskan: 2025-01-21 12:47:10
asal
462 orang telah melayarinya

How Can a Single SQL Query Retrieve Distinct Sums Based on Multiple WHERE Clause Conditions?

Gunakan berbilang klausa WHERE untuk mendapatkan semula data yang berbeza

Dalam SQL, anda boleh menggunakan klausa WHERE untuk menapis baris tertentu, dengan itu menyesuaikan cara data diambil daripada jadual. Masalah ini membentangkan cabaran untuk mengekstrak dua set data berbeza daripada jadual yang sama, setiap satu memenuhi klausa WHERE yang berbeza.

Contoh jadual "urus niaga" menyimpan rekod transaksi kewangan yang dicirikan oleh ID, ID akaun, ID belanjawan, mata yang diperoleh dan jenis transaksi mereka. Tugasnya adalah untuk mengira jumlah mata yang diperuntukkan dan jumlah mata yang dikeluarkan untuk setiap ID belanjawan unik.

Untuk melakukan ini, satu pertanyaan SQL boleh dibina yang menggabungkan klausa WHERE yang diperlukan. Pertanyaan berikut mencapai hasil yang diingini:

<code class="language-sql">SELECT budget_id, 
       SUM(CASE WHEN type = 'allocation' THEN points ELSE 0 END) AS allocated,
       SUM(CASE WHEN type = 'issue' THEN points ELSE 0 END) AS issued
FROM transactions
GROUP BY budget_id</code>
Salin selepas log masuk

Pertanyaan ini menggunakan penyata CASE WHEN untuk menjumlahkan mata secara bersyarat berdasarkan jenis transaksi. Untuk setiap ID belanjawan, pertanyaan mengira jumlah mata yang dikaitkan dengan jenis "peruntukan" dan menyimpannya dalam lajur "diperuntukkan". Begitu juga, ia mengira jumlah mata jenis "isu" dan menyimpannya dalam lajur "dikeluarkan". Dengan mengumpulkan hasil mengikut ID belanjawan, pertanyaan menghasilkan set hasil yang dijangka, yang mengandungi lajur berasingan untuk mata yang diperuntukkan dan mata yang dikeluarkan untuk setiap belanjawan.

Pertanyaan ini menunjukkan fleksibiliti SQL dalam menggabungkan klausa WHERE untuk mendapatkan semula subset data tertentu daripada jadual, menjadikannya alat yang berkuasa untuk melaksanakan tugas mendapatkan data yang kompleks.

Atas ialah kandungan terperinci Bagaimanakah Pertanyaan SQL Tunggal Dapat Mendapatkan Jumlah Berbeza Berdasarkan Keadaan Klausa Berbilang WHERE?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan