Heim > Datenbank > MySQL-Tutorial > Wie rufe ich vollständige Verkaufsdaten für die letzten sieben Tage aus einer MySQL-Tabelle ab, einschließlich der Tage ohne Transaktionen?

Wie rufe ich vollständige Verkaufsdaten für die letzten sieben Tage aus einer MySQL-Tabelle ab, einschließlich der Tage ohne Transaktionen?

Barbara Streisand
Freigeben: 2024-12-29 13:58:11
Original
505 Leute haben es durchsucht

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

Umfassende Daten aus einer MySQL-Einzeltabelle abrufen: Leere Zeilen und aktuelle Transaktionen abdecken

In dieser Diskussion wollen wir eine gemeinsame Herausforderung angehen Probleme beim Abfragen einer Datenbank: So integrieren Sie sowohl aktuelle Transaktionen als auch leere Tage in die Ergebnisse. Konkret konzentrieren wir uns darauf, die letzten sieben Tage der Verkaufstransaktionen abzurufen und dabei leere Zeilen für Tage ohne Aktivität einzubeziehen.

Zunächst nutzen wir die Funktionen der Funktion COALESCE(), die uns das Ersetzen ermöglicht ein Standardwert, wenn der Ausdruck NULL ergibt. In diesem Fall verwenden wir 0 als Standardwert für leere Zeilen.

Anschließend erstellen wir eine Unterabfrage, um eine umfassende Liste der Daten der letzten sieben Tage zu generieren. Dies dient als Grundlage für den vollständigen Ergebnissatz und stellt sicher, dass leere Zeilen enthalten sind.

Abschließend führen wir eine LEFT JOIN-Operation zwischen der generierten Datumsliste und der Transaktionstabelle durch und gleichen Datensätze basierend auf dem PURCHASE_DATE ab Spalte. Dadurch werden die Transaktionen mit den leeren Datumsdatensätzen zusammengeführt, sodass wir den Gesamtverkaufsbetrag für jeden Tag berechnen und sowohl aktuelle Transaktionen als auch leere Zeilen anzeigen können.

Die resultierende Abfrage bietet effektiv einen umfassenden Überblick über die letzten sieben Tage der Verkaufstransaktionen unter Berücksichtigung von Tagen ohne aufgezeichnete Aktivität.

Hier ist die vollständige Abfrage als Referenz:

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;
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie rufe ich vollständige Verkaufsdaten für die letzten sieben Tage aus einer MySQL-Tabelle ab, einschließlich der Tage ohne Transaktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage