同一列中2个日期的DateDiff SQL

Kri*_*wee 3 sql sql-server sql-server-2005

使用SQL Server 2005,我需要获取datediff同一列中的2个日期,表如下所示:

OrderNo    OpNo    ResType    LoadedStartDate
-----------------------------------------------------
12345      1       PAINT      2014-05-01 00:00:00.000
12345      2       PAINT      2014-05-02 00:00:00.000
12345      3       PAINT      2014-05-03 00:00:00.000
12345      4       ASMB       2014-05-04 00:00:00.000
67890      1       PAINT      2014-05-02 00:00:00.000
67890      2       PAINT      2014-05-03 00:00:00.000
67890      3       PAINT      2014-05-04 00:00:00.000
67890      4       ASMB       2014-05-05 00:00:00.000
Run Code Online (Sandbox Code Playgroud)

我需要获取OpNo 1和OpNo 4的日期差异,它们的订单号相同。正如我要比较的那样,OpNo始终为1和4,ResType也一样。

输出将如下所示:

OrderNo    Difference
----------------------
12345      3
67890      3
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助 :)

Dam*_*ver 5

只需将表加入自身即可:

SELECT t1.OrderNo,DATEDIFF(day,t1.LoadedStartDate,t2.LoadedStartDate)
FROM UnnamedTableFromQuestion t1
       INNER JOIN
     UnnamedTableFromQuestion t2
       on
         t1.OrderNo = t2.OrderNo
WHERE t1.OpNo = 1 and
      t2.OpNo = 4
Run Code Online (Sandbox Code Playgroud)