Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mendapatkan Data Jualan Lengkap untuk Tujuh Hari Terakhir daripada Jadual MySQL, Termasuk Hari Tanpa Transaksi?

Bagaimana untuk Mendapatkan Data Jualan Lengkap untuk Tujuh Hari Terakhir daripada Jadual MySQL, Termasuk Hari Tanpa Transaksi?

Barbara Streisand
Lepaskan: 2024-12-29 13:58:11
asal
505 orang telah melayarinya

How to Retrieve Complete Sales Data for the Last Seven Days from a MySQL Table, Including Days with No Transactions?

Mendapatkan Data Komprehensif daripada Jadual Tunggal MySQL: Meliputi Baris Kosong dan Transaksi Terkini

Dalam perbincangan ini, kami berhasrat untuk menangani cabaran bersama dihadapi apabila menanyakan pangkalan data: bagaimana untuk memasukkan kedua-dua transaksi terkini dan hari kosong ke dalam keputusan. Khususnya, kami akan menumpukan pada mendapatkan semula tujuh hari terakhir transaksi jualan sambil memasukkan baris kosong untuk hari tanpa sebarang aktiviti.

Untuk bermula, kami akan memanfaatkan keupayaan fungsi COALESCE(), yang membolehkan kami menggantikan nilai lalai jika ungkapan menilai kepada NULL. Dalam kes ini, kami akan menggunakan 0 sebagai nilai lalai untuk baris kosong.

Kami kemudiannya akan membuat subkueri untuk menjana senarai lengkap tarikh yang merangkumi tujuh hari yang lalu. Ini akan menjadi asas untuk set hasil lengkap, memastikan baris kosong disertakan.

Akhir sekali, kami akan melakukan operasi LEFT JOIN antara senarai tarikh yang dijana dan jadual transaksi, memadankan rekod berdasarkan PURCHASE_DATE lajur. Ini akan menggabungkan urus niaga dengan rekod tarikh kosong, membolehkan kami mengira jumlah amaun jualan untuk setiap hari dan memaparkan kedua-dua urus niaga terkini dan baris kosong.

Pertanyaan yang terhasil akan memberikan gambaran keseluruhan menyeluruh mengenai tujuh yang terakhir. hari transaksi jualan, mengambil kira hari tanpa aktiviti direkodkan.

Berikut ialah pertanyaan lengkap untuk rujukan:

SELECT 
    t1.purchase_date,
    COALESCE(SUM(t1.amount + t2.amount), 0) AS amount
FROM 
    (
        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()
    ) t1
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()
        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

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Data Jualan Lengkap untuk Tujuh Hari Terakhir daripada Jadual MySQL, Termasuk Hari Tanpa Transaksi?. 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