私はms server 2008を使用しており、特定の量の他の列に達するまで、FIFOベースの挿入を特定の列に設計する方法がありません。特定の値に達するまで(FIFOベースの挿入)
基本的には、納品日/商品受領日で列を注文するだけで、 "price value"列に値が到達するまで "goods value received"列に記入し、残りの値を列 "残っている商品 "です。だから私はどれだけまだ残っているか知っています。出来ますか?
たとえば、商品(ID、価格、出荷日、出荷日まで)を含むテーブルがあります。私がしたいのは、このリストをgoods_idと出荷日で注文したいと思うことです。私は受け取ったすべての物品を保管する2番目のテーブルを持っています。この2番目のテーブルには、商品ID、商品の価値、商品を受け取った日付が表示されます。
それでは、私は基本的に欲しいのは、次の例
製品表について説明します。
|goods id|price|shipment date from| shipment date to|goods value remaining | goods value received| 1 100 2016-09-26 2016-10-30 NULL NULL 1 200 2016-09-22 2016-10-30 NULL NULL 1 50 2016-09-23 2016-10-30 NULL NULL 2 500 2016-05-10 2016-09-30 NULL NULL 2 20 2016-05-12 2016-09-30 NULL NULL 2 300 2016-05-04 2016-09-30 NULL NULL 3 400 2016-10-12 2016-11-30 NULL NULL 3 300 2016-10-06 2016-11-30 NULL NULL Goods received Table |goods id|item_value|item_received_date| 1 20 2016-09-26 1 200 2016-09-22 2 500 2016-05-10 2 20 2016-05-12 2 400 2016-05-04 3 400 2016-10-12 3 100 2016-10-06 INSERT into Goods Table with FIFO System: First step: order by shipment date: |goods id|price|shipment date from| shipment date to|goods value remaining | goods value received| 2 300 2016-05-04 2016-09-30 NULL NULL 2 500 2016-05-10 2016-09-30 NULL NULL 2 20 2016-05-12 2016-09-30 NULL NULL 1 200 2016-09-22 2016-10-30 NULL NULL 1 50 2016-09-23 2016-10-30 NULL NULL 1 100 2016-09-26 2016-10-30 NULL NULL 3 300 2016-10-06 2016-11-30 NULL NULL 3 400 2016-10-12 2016-11-30 NULL NULL Second step: Order the received goods table by "item received date". 1 200 2016-09-22 1 20 2016-09-26 2 400 2016-05-04 2 500 2016-05-10 2 20 2016-05-12 3 400 2016-10-06 3 100 2016-10-12 Insert into column (goods value received) with FIFO System until "price" is reached. If the price has rechead, begin to insert into next row until the price of the column has reached: example: |goods id|price|shipment date from| shipment date to| goods value remaining |goods value received| 2 300 2016-05-04 2016-09-30 300 -- 100 left (insert the 100 on the next row and add the remaining value) 2 500 2016-05-10 2016-09-30 500 -- added 100 and insert 400 of 500. 100 are left 2 20 2016-05-12 2016-09-30 20 -- added 20. 80 from last row are left + 20 are left from the received table. finished 1 200 2016-09-22 2016-10-30 200 -- added 200 of the received table. 1 50 2016-09-23 2016-10-30 20 -- the last 20 added of the received table. 1 100 2016-09-26 2016-10-30 130 0 -- 130 are remaining! This value I need to know! 3 300 2016-10-06 2016-11-30 300 -- added 300 of 400. 100 remaining. 3 400 2016-10-12 2016-11-30 200 200 -- added 100 of the last row, added 100 of the received item table. 200 are left. this is the value I need to know.
私はそれをコーディングする方法見当がつかないので、あなたはこれで私を助けることができれば、私は本当に感謝されます。
は、 ジンクスあなたはあなたの条件のためのストアドプロシージャを作成する必要が
あなたは1つの商品IDを持って、あなたの要件をexlplainしてくださいください – TheGameiswar
私はすべての要件を最後に説明しました。私はまた、すべてのステップについてコメントします。 – Jinks
あなたのid列が一意でない理由は、私は実際には非常に混乱しています。それ以外にも、あなたが構築しようとしているロジックが理解できるように、私はあなたがアプリレベルでアドバイスしてくれるものです。 – stb