SQl 查询,用于减去同一 id 的两行,并在新列中填充差异



这是我的输入表。我正在尝试填充表格,如下面的输出所示。你能帮我解决SQL服务器中的SQL查询吗?

在表 1 中,ID 是唯一的,每个 ID 都有超时和超时。

表2 显示了在超时和超时之间有关表 1 中 ID 的更详细操作。但是这个表格只是有时间。同时使用表 1 和表 2 必须填充输出表,如实际时间(以分钟为单位(所示。

输出表 row1 等于表 1 row1,时间差异(以分钟为单位(为实际时间

输出表 row2 等于表 2 行 1 和表 2 行 2 时间作为超时,时间差异(以分钟为单位(作为实际时间

输出表 row3 等于表 2 行 2 和表 2 行 3 timein 作为超时,时间差异(以分钟为单位(作为实际时间

输出表 row4 等于表 2 行 3 和表 1 行 1 超时作为超时,时间差异(以分钟为单位(作为实际时间。

表1

ID     statusName1     Timein     Timeout    
--------------------------------------------
100     WITH M         9:00:00     10:15:00
101     WITH K        10:00:00     13:30:00

表2

key ID     statusName2        Timein     
----------------------------------
1  100       WITH A          9:05:00     
2  100       WITH B          9:20:00     
3  100       WITH C          9:45:00
4  101       WITH A         10:01:00
5  101       WITH D         10:11:00

我的输出应该看起来像

ID      statusName       TimeIn        Timeout    Actualtime     
-------------------------------------------------------------
100      WITH M           9:00:00      10:15:00     75:00         
100      WITH A           9:05:00      9:20:00      15:00      
100      WITH B           9:20:00      9:45:00      25:00     
100      WITH C           9:45:00      10:15:00     30:00
101      WITH K          10:00:00      13:30:00    210:00
101      WITH A          10:01:00      10:11:00     10:00
101      WITH D          10:11:00      13:30:00    199:00

您需要在 table2 中添加一列,以便进行左连接

ID     statusName        Actualtime    TimeIn        
100       WITH A         9:05:00       9:00:00
100       WITH B         9:20:00       9:00:00
100       WITH C         9:45:00       9:00:00
101       WITH M         10:01:00      10:00:00
101       WITH N         10:11:00      10:00:00
select table1.ID, table2.statusName, 
table1.TimeIn, table1.Timeout, table2.Actualtime
from table1 LEFT JOIN
table2
ON table1.TimeIn= table2.TimeIn;

最新更新