2017-03-15 76 views
-3

我对类似下面的表两张表的工作,请大家帮我上我的查询有类似第三个表的结果。提前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 
+0

这个问题并没有表现出任何的研究工作。 –

+0

你在这个问题上的尝试在哪里? – Eric

回答

-1

您可以用两个左派为此加入到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 
+0

非常感谢SqlZim ...它完美... –

+0

@MILD。乐于帮助! – SqlZim

+0

非常感谢SqlZim ...它的工作非常完美......现在我想根据已完成的工作量添加一个显示0,1或2的完成列。我增加了CASE WHEN功能,如:CASE WHEN Actual_B> 1 THEN ELSE 1 0 END + CASE WHEN Actual_B> 1 THEN ELSE 1 0 END为完成,则错误味精指出Actual_A是不是有效的列。你能帮我摆脱这个.....再次感谢...... –