Rumah > pangkalan data > tutorial mysql > Bagaimana Menjumlahkan Mata dengan Cekap mengikut ID Belanjawan dan Jenis Transaksi Menggunakan SQL?

Bagaimana Menjumlahkan Mata dengan Cekap mengikut ID Belanjawan dan Jenis Transaksi Menggunakan SQL?

Linda Hamilton
Lepaskan: 2025-01-21 12:43:11
asal
965 orang telah melayarinya

How to Efficiently Sum Points by Budget ID and Transaction Type Using SQL?

Pertanyaan SQL yang Cekap untuk Meringkaskan Data Transaksi

Mengekstrak data berdasarkan berbilang kriteria adalah tugas biasa dalam pengurusan pangkalan data. Bayangkan jadual "urus niaga" yang mengandungi id_akaun, id_belanjawan, mata dan jenis transaksi (peruntukan atau keluaran). Cabarannya ialah untuk mengira jumlah mata dengan cekap bagi setiap bajet_id, dipisahkan mengikut peruntukan dan jenis terbitan.

Pertanyaan SQL ringkas boleh menyelesaikan masalah ini dengan elegan:

<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 memanfaatkan pernyataan CASE dalam fungsi SUM(). Ungkapan CASE WHEN type = 'allocation' THEN points ELSE 0 END menyemak jenis transaksi. Jika ia 'peruntukan', nilai points yang sepadan dijumlahkan; jika tidak, 0 ditambah. Penjumlahan bersyarat ini diulang untuk transaksi jenis 'isu'.

Menghimpunkan keputusan mengikut budget_id menyediakan ringkasan yang menunjukkan mata yang diperuntukkan dan dikeluarkan untuk setiap belanjawan. Output dengan jelas membentangkan pandangan yang disatukan bagi data transaksi, memudahkan analisis dan pelaporan.

Atas ialah kandungan terperinci Bagaimana Menjumlahkan Mata dengan Cekap mengikut ID Belanjawan dan Jenis Transaksi Menggunakan SQL?. 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