ホームページ >データベース >mysql チュートリアル >消費順序に基づいて複数のSQL行から枯渇する値を減算する方法は?

消費順序に基づいて複数のSQL行から枯渇する値を減算する方法は?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-10 09:40:42881ブラウズ

How to Subtract Depleting Values from Multiple SQL Rows Based on Consumption Order?

SQL の消費順序に基づいて行から減少する値を減算します

あるテーブルが別のテーブルの数量を消費する、数量が減少するシナリオを扱う場合、行から消費された値を適切に減算する方法を見つける必要があります。この質問は、さまざまな条件に基づいて複数の行から「消費量」を減算する必要がある状況を示します。

タスクは次のステップに分類できます:

  1. 最後の行でない場合:

    • 「バッチから消費された数量」を、数量と消費数量の差として (消費数量が数量より小さい場合)、または数量自体として計算します。
  2. さらに行がある場合:

    • 消費量を前のバッチで消費した量だけ減らします。
  3. 最後の行に到達するまで手順 1 ~ 2 を繰り返します。

  4. 最後の行の場合:

    • バッチから消費された数量を消費された残りの数量に設定します。

回答で提供されている SQL クエリは、Common Table Expressions (CTE) を使用してこれらの手順を効率的に完了します。まず、各プールの最初のバッチを選択し、消費数量に基づいて実行数量と残りの需要を計算します。次に、再帰ユニオンを使用して後続のバッチを各プールに追加し、実行数量と残りの需要を更新します。

最後に、残りの需要から実行数量を差し引いて、各プールの最終ラインの余剰または不足を計算します。結果として得られる行と列のセットは目的の出力を提供し、消費量はマージされたバッチから行ごとに削減されます。

以上が消費順序に基づいて複数のSQL行から枯渇する値を減算する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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