在庫プールがロットに分かれています。注文が到着し、指定されたプールからその注文を最初のロットから開始します。時には、プール内のすべてのロットよりも大きい注文が入ってきます。ストックを取得するには、別のプールに移動する必要があります。SQL倉庫在庫ピッキング消費量が数量より多い
私はthis very helpful linkがほぼ正確に記述されていますが、答えはデータを表示するために必要なものから1歩です。
サンプル株式プール、たくさん及び量:
+----+------+-----+----------+
| Id | Pool | Lot | Quantity |
+----+------+-----+----------+
| 1 | 1 | 1 | 5 |
| 2 | 1 | 2 | 10 |
| 3 | 1 | 3 | 4 |
| 4 | 2 | 1 | 7 |
| 5 | 3 | 1 | 1 |
| 6 | 3 | 2 | 5 |
+----+------+-----+----------+
サンプル受注:
+------+-----+----------+------------------+-----------------+-----------------+------------------+
| Pool | Lot | Quantity | QuantityConsumed | RunningQuantity | RemainingDemand | SurplusOrDeficit |
+------+-----+----------+------------------+-----------------+-----------------+------------------+
| 1 | 1 | 5 | 17 | 0 | 12 | NULL |
| 1 | 2 | 10 | 17 | 0 | 2 | NULL |
| 1 | 3 | 4 | 17 | 2 | 0 | 2 |
| 2 | 1 | 7 | 8 | 0 | 1 | -1 |
| 3 | 1 | 1 | 6 | 0 | 5 | NULL |
| 3 | 2 | 5 | 6 | 0 | 0 | 0 |
+------+-----+----------+------------------+-----------------+-----------------+------------------+
:
+----+------+------------------+
| Id | Pool | QuantityConsumed |
+----+------+------------------+
| 1 | 1 | 17 |
| 2 | 2 | 8 |
| 3 | 3 | 6 |
+----+------+------------------+
リンク質問からHABOの答えを使用して、以下の結果を得ますしかし、私はプール2の注文が前のプールに行き、余剰があればそれから取るようにしたいs。
最終募集結果:
+------+-----+----------+------------------+-----------------+-----------------+------------------+
| Pool | Lot | Quantity | QuantityConsumed | RunningQuantity | RemainingDemand | SurplusOrDeficit |
+------+-----+----------+------------------+-----------------+-----------------+------------------+
| 1 | 1 | 5 | 17 | 0 | 12 | NULL |
| 1 | 2 | 10 | 17 | 0 | 2 | NULL |
| 1 | 3 | 4 | 17 | 1 | 0 | 1 |
| 2 | 1 | 7 | 8 | 0 | 0 | 0 |
| 3 | 1 | 1 | 6 | 0 | 5 | NULL |
| 3 | 2 | 5 | 6 | 0 | 0 | 0 |
+------+-----+----------+------------------+-----------------+-----------------+------------------+
私はそこのカップルは、プール注文数量が利用可能なプールの量と照合される前に、リンクのソリューションに一時テーブルの連鎖球菌も考えていたが、その後、私は知りません追加の在庫が前のプールから取られるように注文を分割する方法。
意見や提案が参考になります。私はSQL Server 2014を使用していますが、システムの移行中にDB2の最新バージョンでもこれを実行したいと考えています。
私は、消費のいずれかの量は、プールでの最大量を上限とされている別のプールに分割しなければならないか、または別の再帰CTEは、実行中の量が量として割り当てられている結果に実行する必要があります考えています赤字は消費された量として割り当てられます – houstonwp