私はこのようになりますdbo.StockLocationHistoryTableいる:前提は、従業員がストック・テイクを行うたびに、行がその製品のために追加されていることをSQL証券の追跡
SELECT * FROM dbo.StockLocationHistory AS slh
StockIdentifier | DateScanned | WarehouseLocation
-------------------------------------------------
72825 | 2016-07-03 16:41:24.077 | 854
30509 | 2016-07-03 16:41:24.077 | 854
30509 | 2016-07-05 08:22:10.056 | 854
30509 | 2016-07-06 14:22:15.099 | 628
30509 | 2016-07-08 15:28:22.542 | 628
72825 | 2016-07-08 15:32:25.256 | 778
30509 | 2016-07-10 18:22:24.556 | 854
ですし、場所は製品があります上記の表から、製品72825はロケーション854の3番目にスキャンされ、次にロケーション778の8番目にスキャンされたことがわかります。
残念ながら、ソフトウェアはそれを検出するとStockOUTレコードに入れません製品は以前のスキャンとは別の場所にあります。私は(成功裏に)場所の歴史を詳述する場所帳を作成しようとしています。
暫定スキャン(EG:最初のコードブロックの行3)ではなく、在庫が場所に追加され、場所から削除されたときのみに関係します。在庫が新しい場所でStockOUTイベントとして検出されたときに、コードブロック2に示すように詳細を表示する必要もあります。私は必要なもの
は以下の通りです:
DECLARE @WarehouseLocation INT = 854
[DateScanned] | StockIdentifier | EventType | StockLevel
------------------------------------------------------------------
2016-07-03 16:41:24.077 | 30509 | StockIN | 1
2016-07-03 16:41:24.077 | 72825 | StockIN | 2
2016-07-06 14:22:15.099 | 30509 | StockOUT | 1
2016-07-08 15:32:25.256 | 72825 | StockOUT | 0
2016-07-10 18:22:24.556 | 30509 | StockIN | 1