Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memaparkan Semua Tarikh dalam Julat dan Mengisi Nilai yang Hilang dengan Sifar Menggunakan SQL?
Membangunkan Pertanyaan untuk Memaparkan Semua Tarikh dan Mengisi Nilai Yang Hilang dengan Sifar
Apabila bekerja dengan julat tarikh, ia sering menjadi perlu untuk mengambil kira titik data yang hilang. Panduan komprehensif ini menyediakan penyelesaian kepada masalah memaparkan semua tarikh antara dua tarikh tertentu dan memberikan nilai sifar kepada baris yang hilang.
Untuk menangani isu ini, kami boleh memanfaatkan ungkapan jadual biasa (CTE) bernama "d" . CTE ini menjana satu siri tarikh dalam julat yang ditentukan. Kami kemudiannya boleh melakukan cantuman kiri antara CTE dan jadual "temp" asal untuk mendapatkan hasil yang diingini.
Berikut ialah pertanyaan yang diubah suai:
;with d(date) as ( select cast('10/01/2012' as datetime) union all select date+1 from d where date < '10/15/2012' ) select t.ID, d.date CDate, isnull(t.val, 0) val from d left join temp t on t.CDate = d.date order by d.date OPTION (MAXRECURSION 0) -- use this if your dates are >99 days apart
Pertanyaan yang disemak ini memastikan bahawa semua tiada tarikh ditangkap dan lajur "val" yang sepadan diisi dengan sifar. Pernyataan "OPTION (MAXRECURSION 0)" ditambahkan untuk mengendalikan situasi di mana julat tarikh melebihi 99 hari.
Atas ialah kandungan terperinci Bagaimana untuk Memaparkan Semua Tarikh dalam Julat dan Mengisi Nilai yang Hilang dengan Sifar Menggunakan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!