Heim >Datenbank >MySQL-Tutorial >Wie plant man MySQL-Abfragen für die tägliche Bestandsbewertung?

Wie plant man MySQL-Abfragen für die tägliche Bestandsbewertung?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-28 17:58:12265Durchsuche

How to Schedule MySQL Queries for Daily Inventory Valuation?

Planung von MySQL-Abfragen: Ein Bestandsbewertungsszenario

Ein Bestandsverwaltungssystem speichert Produktdaten normalerweise in zwei Tabellen: eine für Artikeldetails (Tabelle_1 ) und eine weitere für Bestandsmengen (Tabelle_2). Zu Berichtszwecken müssen Benutzer möglicherweise Bestandsbewertungen zu vergangenen Daten anzeigen. Die aktuelle Bewertung ist jedoch nur für die Daten des aktuellen Tages korrekt, da Artikelkosten und -mengen je nach Käufen und Verkäufen schwanken können.

Um dieser Herausforderung zu begegnen, besteht eine Möglichkeit darin, eine wiederkehrende Aufgabe zu planen, um historische Bestandsbewertungen zu erstellen . So ist es in MySQL möglich:

Option 1: Event Scheduler

Mit dem Event Scheduler von MySQL können Sie geplante Aufgaben innerhalb der Datenbank ausführen. Um täglich einen Lagerbewertungs-Dump zu planen, erstellen Sie eine Tabelle namens stock_dumps mit den folgenden Feldern: Artikelcode, Menge, Durchschnittskosten, TTL-Wert und Dump_Datum.

Erstellen Sie dann ein Ereignis namens Dumping_event mit der folgenden SQL-Anweisung:

CREATE EVENT `Dumping_event` ON SCHEDULE
        EVERY 1 DAY
    ON COMPLETION NOT PRESERVE
    ENABLE
    COMMENT ''
    DO BEGIN
INSERT INTO stock_dumps(itemcode, quantity, avgcost, ttlval,dump_date)
SELECT itmcode, quantity, avgcost, (avgcost * quantity)as ttlval, NOW()
  FROM table_1 JOIN table_2 ON table_1.itmcode = table_2.itmcode;
END

Option 2: Cron Job

Alternativ können Sie einen Cron-Job oder eine geplante Windows-Aufgabe erstellen, um eine SQL-Datei auszuführen, die den Dump ausführt. Die SQL-Datei würde die folgende Anweisung enthalten:

INSERT INTO stock_dumps(itemcode, quantity, avgcost, ttlval,dump_date)
SELECT itmcode, quantity, avgcost, (avgcost * quantity)as ttlval, NOW()
FROM table_1 JOIN table_2 ON table_1.itmcode = table_2.itmcode;

Planen Sie die Aufgabe so, dass sie täglich ausgeführt wird, und sie generiert historische Datensätze zur Bestandsbewertung, die in der Tabelle stock_dumps gespeichert sind.

Das obige ist der detaillierte Inhalt vonWie plant man MySQL-Abfragen für die tägliche Bestandsbewertung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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