ホームページ  >  記事  >  データベース  >  MySQL で日次在庫評価レポートを自動化するにはどうすればよいですか?

MySQL で日次在庫評価レポートを自動化するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-26 21:21:11331ブラウズ

How Can I Automate Daily Inventory Valuation Reports in MySQL?

MySQL クエリのスケジュール

MySQL のイベント スケジューラ機能を使用すると、ユーザーは指定した間隔で実行するタスクをスケジュールできます。この機能は、定期的なデータのバックアップやレポートの定期的な生成など、さまざまなシナリオで役立ちます。

ケーススタディ: 在庫評価

次のような在庫データベースがあります。過去の日付の品目ごとの評価に関するレポートを生成する必要があります。現在の在庫の評価額を手動で計算できますが、過去の評価額を追跡する方法も必要です。

解決策: イベント スケジューラを使用する

クエリをスケジュールするには評価データを別のテーブルにダンプする場合は、次に従ってください手順:

  1. 宛先テーブルの作成:

    CREATE TABLE stock_dumps (
        itemcode VARCHAR(255),
        quantity INT,
        avgcost DECIMAL(10,2),
        ttlval DECIMAL(10,2),
        dump_date DATETIME
    );
  2. セットアップスケジュール:

    CREATE EVENT Dumping_event
    ON SCHEDULE EVERY 1 DAY
    ON COMPLETION NOT PRESERVE
    ENABLE
    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;

代替: Cron/スケジュールされたジョブの使用

イベント スケジューラを使用したくない場合は、ダンプ クエリを含む SQL ファイルを実行する cron ジョブまたはスケジュールされたタスクを作成します。

  1. SQL ファイルを作成します:

    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;
  2. job:

    mysql -u [user] -p [password] < /path/to/SQL_file.sql

このクエリを毎日または必要な頻度でスケジュールすることにより、在庫評価の履歴記録を維持し、過去の日付に関するレポートを生成できます。

以上がMySQL で日次在庫評価レポートを自動化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。