Rumah >pangkalan data >tutorial mysql >Bagaimana Menjumlahkan Nilai Tunai dalam SQL Berdasarkan Keadaan Bulanan?

Bagaimana Menjumlahkan Nilai Tunai dalam SQL Berdasarkan Keadaan Bulanan?

Barbara Streisand
Barbara Streisandasal
2024-12-23 15:41:15561semak imbas

How to Sum Cash Values in SQL Based on a Monthly Condition?

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!

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