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`
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!