Rumah >pangkalan data >tutorial mysql >Bagaimana Menjumlahkan Nilai Tunai dalam SQL Berdasarkan Keadaan Bulanan?
Jumlah SQL dengan Syarat (Termasuk Pengiraan Berdasarkan Bulan)
Anda mempunyai penyata SQL yang besar yang mengira jumlah tunai untuk setiap transaksi unik ID menggunakan baris berikut:
select sum(cash) from Table a where a.branch = p.branch and a.transID = p.transID) TotalCash
Kini, anda perlu mengubah suai penyata kepada jumlah nilai tunai sahaja yang mempunyai ValueDate dalam bulan lepas. Berikut ialah penyelesaian:
select sum(CASE WHEN ValueDate > @startMonthDate THEN cash ELSE 0 END) from Table a where a.branch = p.branch and a.transID = p.transID) TotalMonthCash
Penjelasan
Pernyataan CASE menggunakan sintaks ungkapan CASE yang dicari untuk menilai ungkapan Boolean (dalam kes ini, WHEN ValueDate > @ startMonthDate) dan kembalikan hasil yang sepadan (di sini, tunai). Jika syarat tidak dipenuhi, ia akan mengembalikan 0 sebaliknya.
Petua Pengoptimuman
Jika prestasi membimbangkan, pertimbangkan untuk menggunakan JOIN dan GROUP BY dan bukannya subquery bergantung untuk kecekapan yang lebih baik.
Atas ialah kandungan terperinci Bagaimana Menjumlahkan Nilai Tunai dalam SQL Berdasarkan Keadaan Bulanan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!