2017-03-15 14 views
-3

私は下の表のような2つのテーブルで作業しています。私のクエリで3番目のテーブルに似た結果を得るのを助けてください。 tnxを事前に入力します。2つのテーブルを結合してこの結果を得る方法

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

次の2つのレフトでこれを行うことができ、table_actualWork_AWork_Bのための1のための1つを結合します。

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を示すDone列を追加します。私は、次のようなCASE WHEN関数を追加しています:Actual_B> 1 THEN 1 ELSE 0 END + CASE Actual_B> 1 THEN 1 ELSE 0 END as Done、エラーmsgは、Actual_Aが有効な列ではないことを示します。あなたは私にこれを取り除くのを助けることができますか.....ありがとうございましたagain ... –

関連する問題