我有一个有趣的 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
该数据集表示两个仓库之间的库存转移。有两条记录代表每次转账,这两条转账记录始终具有相同的 ItemNumber、DateStamp 和 ID。两条转移记录的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。不,我不能更改数据模型;)。
任何意见是极大的赞赏!
问候,马克