3 つのテーブル (JM、JCD、および JEO) があります。JM は PK JobNo を持つ親です。JCD と JEO は両方とも、FK の JobNo を持つ JM の子です。
以下は、私がクエリを書いている3つのテーブルからの望ましい出力テーブルです(ひどいフォーマットについて申し訳ありません-まだ画像を投稿できません:( )
JM
JobNo
------
13088
13100
JCD
JobNo CostType Amount
----------------------------
13088 10 100
13088 10 105
13088 23 120
13088 24 130
13088 25 140
13088 26 50
13088 90 50
13100 25 5
13100 90 10
JEO
JobNo CostType Estimate
-------------------------------------
13088 10 50
13088 11 60
13088 24 10
13088 30 100
13100 25 310
出力
JobNo CostType Amount Estimate
------------------------------------
13088 10 100 0
13088 10 105 0
13088 23 120 0
13088 24 130 0
13088 25 140 0
13088 26 50 0
13088 10 0 50
13088 11 0 60
13088 24 0 10
13088 30 0 100
13100 25 5 0
13100 25 0 310
これを達成するためのコードについてのアイデアはありますか?
(結果のテーブルには、JCD.CostType が 90 に等しい行が含まれていないことに注意してください)。
私はこのようなことを試しましたが、うまくいきません:(
SELECT JM.JobNo, JCD.CostType, JCD.Amount, JEO.Estimate
FROM JM
FULL OUTER JOIN JCD ON JM.JobNo = JCD.JobNo
FULL OUTER JOIN JEO ON JM.JobNo = JEO.JobNo
WHERE JCD.CostType != 90
GROUP BY JM.JobNo, JCD.CostType, JCD.Amount, JEO.Estimate