Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menjumlahkan Transaksi Tunai Berdasarkan Tarikh Nilai Bersyarat dalam SQL?
Menjumlahkan Transaksi Tunai dengan Tarikh Nilai Bersyarat
Dalam bekerja dengan penyata SQL yang besar, selalunya perlu untuk mengira nilai agregat untuk keadaan tertentu. Soalan ini menangani penggunaan fungsi SUM kepada jumlah nilai tunai daripada jadual, dengan syarat ValueDates yang sepadan jatuh dalam tempoh masa tertentu (iaitu, bulan lepas).
Untuk mencapai ini, kod mengubah suai fungsi SUM untuk memasukkan ungkapan CASE yang menilai medan ValueDate. Jika ValueDate lebih besar daripada tarikh mula bulan lepas, nilai tunai dimasukkan dalam jumlah; jika tidak, ia dikecualikan. Kod yang diubah suai adalah seperti berikut:
SUM(CASE WHEN ValueDate > @startMonthDate THEN cash ELSE 0 END)
Kod yang dikemas kini ini memastikan bahawa hanya nilai tunai dengan ValueDates dalam julat yang ditentukan disertakan dalam jumlah. Pengiraan dilakukan dengan cekap dengan menggunakan sintaks ungkapan CASE yang dicari, yang menilai ungkapan Boolean untuk menentukan hasilnya.
Perlu diambil perhatian bahawa jika prestasi menjadi isu, mungkin berfaedah untuk mempertimbangkan untuk menulis semula pernyataan menggunakan SERTAI dan KUMPULAN OLEH bukannya subkueri bergantung. Pendekatan ini selalunya boleh meningkatkan kelajuan pelaksanaan untuk pernyataan SQL yang kompleks.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjumlahkan Transaksi Tunai Berdasarkan Tarikh Nilai Bersyarat dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!