Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Mengekstrak Semua Bulan dalam Julat Tarikh, Termasuk Nilai Sifar dalam MySQL?

Bagaimana untuk Mengekstrak Semua Bulan dalam Julat Tarikh, Termasuk Nilai Sifar dalam MySQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-03 19:42:29351semak imbas

How to Extract All Months within a Date Range, Including Zero Values in MySQL?

Mengekstrak Semua Bulan dalam Julat Tarikh, Termasuk Nilai Sifar

Dalam MySQL, adalah mungkin untuk mengekstrak nilai purata sebulan dalam tarikh yang ditentukan julat, walaupun bulan tertentu mempunyai nilai sifar. Kefungsian ini penting untuk memastikan semua bulan diambil kira dan dipaparkan dengan tepat.

Untuk mencapai matlamat ini, satu pendekatan ialah mencipta "Jadual tarikh" yang mengandungi semua bulan yang mungkin dalam julat yang diperlukan. Jadual ini boleh diisi dengan lajur seperti "Tarikh," "Bulan," "Tahun" dan lain-lain.

Seterusnya, pertanyaan asal boleh diubah suai untuk melakukan LEFT JOIN dengan "dateTable" pada lajur tarikh yang sepadan. Ini memastikan bahawa semua bulan dalam julat tarikh yang ditentukan diambil semula, tidak kira sama ada terdapat entri yang sepadan dalam jadual utama atau tidak. Pertanyaan akan menyerupai yang berikut:

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 `dateTable`.`myDate` = `myTable`.`save_date`
WHERE `dateTable`.`myDate` BETWEEN '2009-01-01' AND '2009-07-01'
GROUP BY `DT`.`myYear`, `DT`.`myMonth`

Pengubahsuaian ini membenarkan pelaporan yang fleksibel berdasarkan mana-mana lajur yang disertakan dalam "Jadual tarikh." Contohnya, pengumpulan mengikut "Suku Tahun Kewangan" atau "Hari Minggu" boleh dicapai dengan melaraskan klausa "KUMPULAN OLEH" dengan sewajarnya.

Dengan menggunakan LEFT JOIN dan "Jadual tarikh" yang komprehensif, pendekatan ini mendapatkan semula dengan berkesan sepanjang bulan dalam julat tarikh tertentu, memastikan bahawa walaupun yang mempunyai nilai sifar dimasukkan dalam output.

Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Semua Bulan dalam Julat Tarikh, Termasuk Nilai Sifar dalam MySQL?. 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