• 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