助けが必要な興味深い SQL の問題があります。
サンプル データセットは次のとおりです。
Warehouse DateStamp TimeStamp ItemNumber ID
A 8/1/2009 10001 abc 1
B 8/1/2009 10002 abc 1
A 8/3/2009 12144 qrs 5
C 8/3/2009 12143 qrs 5
D 8/5/2009 6754 xyz 6
B 8/5/2009 6755 xyz 6
このデータセットは、2 つの倉庫間の在庫移動を表しています。各転送を表す 2 つのレコードがあり、これら 2 つの転送レコードは常に同じ ItemNumber、DateStamp、および ID を持ちます。2 つの転送レコードの TimeStamp 値の差は常に 1 です。小さい方の TimeStamp はソース倉庫レコードを表し、大きい方の TimeStamp は宛先倉庫レコードを表します。
上記のサンプル データセットを使用すると、必要なクエリ結果セットは次のようになります。
Warehouse_Source Warehouse_Destination ItemNumber DateStamp
A B abc 8/1/2009
C A qrs 8/3/2009
D B xyz 8/5/2009
目的の結果セットを生成するコードを書くことはできますが、このレコードの組み合わせが SQL を介して可能かどうか疑問に思っていました。基盤となるデータベースとして SQL Server 2005 を使用しています。また、SQL に WHERE 句を追加する必要もあります。たとえば、Warehouse_Source = A で検索できるようにします。データ モデルを変更することはできません ;)。
どんなアドバイスでも大歓迎です!
よろしく、マーク