如何加入两个表来获得此结果

时间:2017-03-15 18:30:06

标签: sql-server

我正在处理两个类似于下表的表,请帮我查询,得到类似于第三个表的结果。 tnx提前。

Table_Plan

JobID   Work_A  WorkA_Plan_Hrs  Work_B  WorkB_Plan_Hrs
1111    1111-a  20  1111-b  30
2222    2222-a  25  2222-b  50

Table_Actual

JobID   Work    Actual_Hrs  Finished
1111    1111-a  21  13:00
1111    1111-b  32  14:00
2222    2222-a  27  15:00
2222    2222-b  55  16:00

期望的结果

JobID   Work_A  WorkA_Plan_Hrs  Work_B  WorkB_Plan_Hrs  Actual_A    Actual_B    Act_Finished_B  Act_Finished_B
1111    1111-a  20  1111-b  30  21  32  13:00   14:00
2222    2222-a  25  2222-b  50  27  55  15:00   16:00

1 个答案:

答案 0 :(得分:-1)

您可以使用两个lefts连接到table_actual,一个用于Work_A,一个用于Work_B

select
    p.JobId
  , p.Work_A
  , p.WorkA_Plan_Hrs
  , p.Work_B
  , p.WorkB_Plan_Hrs
  , a.Actual as Actual_A
  , b.Actual as Actual_B
  , a.Finished as Act_Finished_A
  , b.Finished as Act_Finished_B
from table_plan p
  left join table_actual a
    on p.JobId = a.JobId
   and p.Work_A = a.Work
  left join table_actual b
    on p.JobId = b.JobId
   and p.Work_B = b.Work