这是我的输入表。我正在尝试填充表格,如下面的输出所示。你能帮我解决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;