У меня есть 3 таблицы (JM, JCD и JEO). JM является родителем с PK JobNo. JCD и JEO являются детьми для JM с JobNo от FK.Как объединить данные из нескольких таблиц в одну главную таблицу с использованием sql
Ниже требуемый выход таблица из 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
Вы можете использовать UNION и выбрать как по отдельности. – iiro
могли бы вы показать мне, как? Я довольно новичок в sql. – user2834719
Наверное, не так важно для этого вопроса, но вы должны указать, какие СУБД (Postgres, Oracle, ...) вы используете –