Также вы можете попробовать это решение. Это должно работать, даже если какое-либо ремесло отсутствует в одной из таблиц
with
WPLABOR (WONUM, CRAFT, HRS, RATE) as (
select 50028507, 'AIRSYS', 0.5, 30 from dual union all
select 50028537, 'AIRSYS', 2, 30 from dual union all
select 50031118, 'AIRSYS', 8, 10 from dual union all
select 50031118, 'ELEC', 8, 30 from dual union all
select 50034485, 'ELEC', 0.5, 18 from dual
) ,
LABTRANS (WONUM, CRAFT, HRS, RATE) as (
select 50028507, 'AIRSYS', 0.5, 30 from dual union all
select 50028537, 'AIRSYS', 1, 36 from dual union all
select 50031118, 'AIRSYS', 6, 30 from dual union all
select 50031118, 'ELEC', 8, 30 from dual union all
select 50034485, 'ELEC', 1, 17 from dual
)
SELECT WPLABOR.CRAFT||LABTRANS.CRAFT CRAFT,
SUM(WPLABOR.HRS*WPLABOR.RATE) Total_Planned_cost ,
SUM(LABTRANS.HRS*LABTRANS.RATE) Total_actual_cost FROM WPLABOR
full join
LABTRANS
on 1 = 0
GROUP BY WPLABOR.CRAFT||LABTRANS.CRAFT
db <> fiddle db fiddle link
Поэтому при условии, что ваши имена таблиц равны WPLABOR и LABTRANS соответственно. и имена столбцов, как я использовал / предположил. тогда запрос может сделать работу. вам нужна только эта часть запроса.
SELECT WPLABOR.CRAFT||LABTRANS.CRAFT CRAFT,
SUM(WPLABOR.HRS*WPLABOR.RATE) Total_Planned_cost ,
SUM(LABTRANS.HRS*LABTRANS.RATE) Total_actual_cost FROM WPLABOR
full join
LABTRANS
on 1 = 0
GROUP BY WPLABOR.CRAFT||LABTRANS.CRAFT