Rumah > pangkalan data > tutorial mysql > Bagaimana Menjumlahkan Nilai Tunai dengan Cekap mengikut ID Transaksi Berdasarkan Tarikh Nilai dalam SQL?

Bagaimana Menjumlahkan Nilai Tunai dengan Cekap mengikut ID Transaksi Berdasarkan Tarikh Nilai dalam SQL?

Linda Hamilton
Lepaskan: 2024-12-16 11:14:10
asal
444 orang telah melayarinya

How to Efficiently Sum Cash Values by Transaction ID Based on Value Date in SQL?

Mengira Jumlah dengan Tarikh Nilai Bersyarat

Dalam penyata SQL, anda ingin mengira jumlah tunai untuk setiap ID transaksi unik dalam tempoh yang lepas bulan. Untuk mencapai matlamat ini, anda perlu mengubah suai penyata sedia ada untuk memasukkan syarat bahawa hanya nilai tunai dengan tarikh nilai selepas tarikh tertentu harus disertakan.

Untuk menangani perkara ini, anda cuba menggunakan penyata CASE, tetapi mengalami ralat kerana sintaks yang salah.

Sintaks yang betul untuk ungkapan CASE yang dicari ialah:

CASE
     WHEN Boolean_expression THEN result_expression [ ...n ] 
     [ ELSE else_result_expression ] 
END
Salin selepas log masuk

Ungkapan hendaklah diubah suai seperti berikut:

SUM(CASE WHEN ValueDate > @startMonthDate THEN cash ELSE 0 END)
Salin selepas log masuk

Ungkapan ini menilai medan ValueDate untuk setiap rekod. Jika ValueDate lebih besar daripada tarikh bulan mula yang ditentukan, nilai tunai dikembalikan; jika tidak, 0 dikembalikan. Nilai yang terhasil kemudiannya dijumlahkan untuk memberikan jumlah tunai untuk tempoh yang ditentukan.

Pendekatan Alternatif

Untuk prestasi yang lebih baik, pertimbangkan untuk menggunakan penyata JOIN dan GROUP BY dan bukannya subquery bergantung:

SELECT SUM(cash)
FROM Table_a AS a
JOIN Table_b AS b ON a.branch = b.branch AND a.transID = b.transID
WHERE ValueDate > @startMonthDate
GROUP BY a.transID
Salin selepas log masuk

Pendekatan ini mengelakkan overhed yang dikaitkan dengan subquery dan boleh mengakibatkan masa pelaksanaan yang lebih pantas.

Atas ialah kandungan terperinci Bagaimana Menjumlahkan Nilai Tunai dengan Cekap mengikut ID Transaksi Berdasarkan Tarikh Nilai dalam 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