Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memasukkan Baris Kosong dalam Pertanyaan MySQL Menunjukkan Transaksi Harian untuk 7 Hari Terakhir?

Bagaimana untuk Memasukkan Baris Kosong dalam Pertanyaan MySQL Menunjukkan Transaksi Harian untuk 7 Hari Terakhir?

Linda Hamilton
Lepaskan: 2024-12-29 18:13:09
asal
541 orang telah melayarinya

How to Include Empty Rows in a MySQL Query Showing Daily Transactions for the Last 7 Days?

Mengintegrasikan Baris Kosong ke dalam Pertanyaan Jadual Tunggal MySQL untuk 7 Hari Sebelumnya

Dalam pertanyaan ini, kami menyasarkan untuk mendapatkan semula semua transaksi dari tujuh hari yang lalu, memastikan bahawa walaupun hari tanpa jualan direkodkan termasuk dalam keputusan. Kami menggunakan teknik yang menggabungkan dua pertanyaan berasingan untuk mencapai hasil ini.

Pertama sekali, kami menghitung semua tarikh dalam tempoh tujuh hari yang lalu menggunakan pernyataan SELECT bersarang. Pertanyaan ini berkesan menjana senarai tarikh yang berfungsi sebagai asas untuk data transaksi kami.

SELECT DATE_FORMAT(a.Date,'%Y-%m-%d') as purchase_date,
'0' as  amount
FROM (
  SELECT curdate() - INTERVAL (a.a + (10 * b.a) + (100 * c.a)) DAY as Date
  FROM (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS a
  CROSS JOIN (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS b
  CROSS JOIN (SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) AS c
) a
WHERE a.Date BETWEEN NOW() - INTERVAL 7 DAY AND NOW()
Salin selepas log masuk

Seterusnya, kami menggabungkan senarai tarikh yang komprehensif ini dengan pertanyaan yang mengagregatkan data jualan harian daripada jadual transaksi kami. Gabungan ini memastikan bahawa kami memasukkan kedua-dua urus niaga yang direkodkan dan baris kosong untuk tarikh tanpa aktiviti.

LEFT JOIN
(
  SELECT DATE_FORMAT(purchase_date, '%Y-%m-%d') as purchase_date,
  COALESCE(SUM(amount), 0) AS amount
  FROM transactions
  WHERE purchase_date BETWEEN NOW() - INTERVAL 7 DAY AND NOW()
  AND vendor_id = 0
  GROUP BY purchase_date
)t2
ON t2.purchase_date = t1.purchase_date
GROUP BY t1.purchase_date
ORDER BY t1.purchase_date DESC
Salin selepas log masuk

Dengan menyepadukan kedua-dua pertanyaan ini dengan lancar, kami membina satu jadual dengan berkesan yang menyenaraikan semua tarikh secara kronologi dalam julat yang ditentukan, dengan data jualan yang sepadan atau sifar apabila tiada transaksi berlaku.

Atas ialah kandungan terperinci Bagaimana untuk Memasukkan Baris Kosong dalam Pertanyaan MySQL Menunjukkan Transaksi Harian untuk 7 Hari Terakhir?. 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