Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menunjukkan Semua Bulan dalam Julat Tarikh, Termasuk Mereka yang mempunyai Nilai Sifar dalam SQL?

Bagaimana untuk Menunjukkan Semua Bulan dalam Julat Tarikh, Termasuk Mereka yang mempunyai Nilai Sifar dalam SQL?

Barbara Streisand
Lepaskan: 2024-10-31 19:33:02
asal
742 orang telah melayarinya

How to Show All Months in a Date Range, Including Those with Zero Values in SQL?

Menunjukkan Semua Bulan dalam Julat Tarikh, Termasuk Yang Bernilai Sifar

Dalam pengaturcaraan SQL, memilih data tertentu dalam tempoh tarikh tertentu boleh mencabar, terutamanya apabila berhadapan dengan nilai yang hilang. Masalah ini timbul apabila cuba mengira purata bulanan untuk semua bulan antara dua tarikh, dan bulan tanpa nilai tidak dipaparkan.

Penyelesaian

Untuk menangani isu ini, satu komprehensif pendekatan menggunakan "jadual tarikh" adalah disyorkan. Jadual ini mengandungi semua bulan dalam julat tarikh yang diperlukan. Dengan melakukan LEFT JOIN antara jadual tarikh dan jadual data sebenar, semua bulan, termasuk yang mempunyai nilai sifar, akan dipaparkan.

SQL Query

Yang berikut pertanyaan yang diubah suai menggabungkan teknik LEFT JOIN:

SELECT `DT`.`myYear`, `DT`.`myMonth`, 
AVG(`myTable`.`value1`) AS `avg_value_1`, 
AVG(`myTable`.`value2`) AS `avg_value_2`
FROM `dateTable` AS `DT`
LEFT JOIN `myTable`
ON `DT`.`myDate` = `myTable`.`save_date`
WHERE `DT`.`myDate` BETWEEN '2009-01-01' AND '2009-07-01'
GROUP BY `DT`.`myYear`, `DT`.`myMonth`
Salin selepas log masuk

Pertanyaan ini memastikan bahawa semua bulan dalam julat yang ditentukan ditunjukkan, termasuk bulan dengan nilai sifar. Dengan memilih medan tambahan daripada "Jadual tarikh", anda boleh melaporkan data dengan mudah mengikut tempoh masa yang berbeza, seperti suku atau hari dalam seminggu.

Atas ialah kandungan terperinci Bagaimana untuk Menunjukkan Semua Bulan dalam Julat Tarikh, Termasuk Mereka yang mempunyai Nilai Sifar 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