SQL选择链式记录

时间:2015-04-01 22:15:59

标签: sql

我正在尝试提取由订单号事件链接的数据。请参阅下面的数据样本表。请注意,orderno确实会为每个创建的新订单增加。

表"历史":

|part|orderno|transaction|transaction_date|
  A    12345    Removal      2015-01-01
  A             Install      2015-01-05
  A    123456   Removal      2015-02-01
  A             Install      2015-02-09
  A    1234567  Removal      2015-03-01

报告的外观如何:

|removal_orderno|trans_date|next_removal_orderno|
   12345         2015-01-01      123456
   123456        2015-02-01      1234567

注意*没有将删除链接到安装的键。删除和安装遵循相同的模式。如果没有首先安装部件,您将无法移除部件。

谢谢你们!

1 个答案:

答案 0 :(得分:1)

     SELECT h.orderno,
     (SELECT TOP 1 orderno 
     FROM history i 
     WHERE i.partno=@partno and i.serialno=@serialno and transaction in ('Removal') and trans_date and i.orderno>h.orderno
     ORDER BY del_date) AS 'Next Removal Orderno'
     FROM history h