how about something like this:
selectjobcode,
complexcode,
unitcode,
ga_drg_no,
isnull(sum(cast(b.item_wt as decimal(18,3))),0) as itmwt,
sum(cast case when c.location='Shop' then isnull(c.item_wt,0) else 0 end as decimal(18,3)) as fabscope_Shop,
sum(cast case when c.location='Site' then isnull(c.item_wt,0) else 0 end as decimal(18,3)) as fabscope_Site,
sum(cast case when c.location='Shop' then isnull(d.item_wt,0) else 0 end as decimal(18,3)) as Redqty_Shop,
sum(cast case when c.location='Site' then isnull(d.item_wt,0) else 0 end as decimal(18,3)) as Redqty_Site,
etc
from wr_scope_gad_location_dynamicQuery as b
left outer join wr_scope_gad_location_dynamicQuery as c
onc.ga_drg_no = b.ga_drg_no
andc.jobcode = b.jobcode
andc.complexcode = b.complexcode
andc.unitcode = b.unitcode
andc.location in ('Shop','Site')
left outer join redundant_qty_locationwise_dynamicQuery as d
onc.ga_drg_no = b.ga_drg_no
andc.jobcode = b.jobcode
andc.complexcode = b.complexcode
andc.unitcode = b.unitcode
andc.location in ('Shop','Site')
etc
group by b.jobcode, b.complexcode, b.unitcode, b.ga_drg_no