Select
T.Contract Site
,T.ACCOUNTING_GROUP
,T.C_RESIN_TYPE Resin
,T.PART_NO
,T.PART_UOM "UOM"
,T.PART_DESC
,round(sum(T.TOTAL_USE),0) "Usage"
,round(sum(T.TOTAL_SCRAP),0) "Scrap"
,round(sum(T.TOTAL_USE),0)+round(sum(T.TOTAL_SCRAP),0) "Usage and Scrap"

from
(
Select
IPL.CONTRACT
,IP.ACCOUNTING_GROUP
,IP.C_RESIN_TYPE
,IPL.PART_NO
,IPL.PART_UOM
,IPL.PART_DESC
,IPL.TOTAL_USE
,0 "TOTAL_SCRAP"

From
IFSINFO.IPL_SHOP_MATERIAL_USE IPL
inner join Inventory_Part IP on IPL.Contract=IP.Contract and IPL.PART_NO=IP.PART_NO

Where
(IPL.CONTRACT LIKE '%&Site%' )  
 and IPL.DATED between  TO_DATE('&DATE_FROM','YYYY-MM-DD')    AND   TO_DATE ('&DATE_TO','YYYY-MM-DD') +1
   and IFSAPP.Technical_Object_Reference_API.Get_Technical_Class_With_Key('PartCatalog','PART_NO=' || IPL.PART_NO || '^') in ('00005','00001')

UNION ALL

Select
S.CONTRACT
,IP2.ACCOUNTING_GROUP
,IP2.C_RESIN_TYPE
,S.PART_NO
,S.PART_UOM
,S.PART_DESC
,0 "TOTAL_USE"
,S.TOTAL_SCRAP

From
IFSINFO.IPL_SHOP_MATERIAL_SCRAP S
inner join Inventory_Part IP2 on S.Contract=IP2.Contract and S.PART_NO=IP2.PART_NO

Where

S.CONTRACT LIKE '%&Site%'

and S.DATED between  TO_DATE('&DATE_FROM','YYYY-MM-DD')    AND   TO_DATE ('&DATE_TO','YYYY-MM-DD') +1
   and IFSAPP.Technical_Object_Reference_API.Get_Technical_Class_With_Key('PartCatalog','PART_NO=' || S.PART_NO || '^') in ('00005','00001')
) T

Group By
T.Contract
,T.ACCOUNTING_GROUP
,T.C_RESIN_TYPE
,T.PART_NO
,T.PART_UOM
,T.PART_DESC

Order by
T.ACCOUNTING_GROUP desc
,T.C_RESIN_TYPE
,round(sum(T.TOTAL_USE),0)+round(sum(T.TOTAL_SCRAP),0) desc
,T.PART_NO