select * from (Select PP.cf$_purchase_cat1_desc Purch_Category1_Desc, IP.Part_NO, IP.Note_Text Legacy, IP.Contract Site, IP.DESCRIPTION, sum(SMA.QTY_REQUIRED) Qty_required, sum(SMA.QTY_ISSUED) Qty_Issued, sum(SMA.QTY_REMAIN_TO_ISSUE) Qty_Remaining_to_Issue, nvl(TFS.QtyOnHand, 0) Floor_Stock, nvl(TP.QtyOnHand, 0) Picking, sum(SMA.QTY_REMAIN_TO_ISSUE) - nvl(TFS.QtyOnHand, 0) Qty_To_Move, TL.Warehouse, TL.Location_No, TL.HANDLING_UNIT_ID HU, TL.Receipt_Date, TL.Location_Qty, sum(TL.Location_Qty) over(PARTITION BY IP.Part_No ORDER BY IP.Part_NO, TL.HANDLING_UNIT_ID rows UNBOUNDED PRECEDING) TTL From SHOP_MATERIAL_ALLOC_uiv SMA inner join INVENTORY_PART IP on SMA.PART_NO = IP.PART_NO and SMA.CONTRACT = IP.CONTRACT left join PURCHASE_PART_cfv PP on IP.Part_No = PP.Part_No and IP.Contract = PP.Contract left join (select PART_NO, CONTRACT, sum(QTY_ONHAND) QtyOnHand from Inventory_Part_in_Stock_uiv where AVAILABILITY_CONTROL_ID is null and LOCATION_TYPE_db = 'F' Group By Contract, PART_NO) TFS on SMA.Part_No = TFS.PART_NO and SMA.Contract = TFS.Contract left join (select PART_NO, CONTRACT, sum(QTY_ONHAND) QtyOnHand from Inventory_Part_in_Stock_uiv where AVAILABILITY_CONTROL_ID is null and LOCATION_TYPE_db = 'PICKING' Group By Contract, PART_NO) TP on SMA.Part_No = TP.PART_NO and SMA.Contract = TP.Contract left join (select PART_NO, CONTRACT, Location_No, Warehouse, RECEIPT_DATE, HANDLING_UNIT_ID, sum(QTY_ONHAND) Location_Qty from Inventory_Part_in_Stock_uiv where AVAILABILITY_CONTROL_ID is null and LOCATION_TYPE_db = 'PICKING' and WAREHOUSE like nvl('&FromWarehouse', '%') Group By Contract, PART_NO, Location_No, Warehouse, HANDLING_UNIT_ID, RECEIPT_DATE) TL on TL.Part_No = SMA.PART_NO and TL.Contract = SMA.Contract Where IP.CONTRACT LIKE '%' || '&CONTRACT' || '%' and report_sys.parse_parameter(PP.cf$_purchase_part_cat_1, '&[-C-BL]PurchasedCategory') = 'TRUE' and SMA.State not in ('Cancelled', 'Closed', 'Planned') and trunc(SMA.DATE_REQUIRED) between to_date('&FROM', 'YYYY-MM-DD') and to_date('&TO', 'YYYY-MM-DD') Group by IP.Part_NO, PP.cf$_purchase_cat1_desc, IP.Note_Text, IP.Contract, IP.DESCRIPTION, TFS.QtyOnHand, TP.QtyOnHand, TL.Location_No, TL.HANDLING_UNIT_ID, TL.Warehouse, TL.Receipt_Date, TL.Location_Qty Having(sum(SMA.QTY_REMAIN_TO_ISSUE) - nvl(TFS.QtyOnHand, 0)) > 0 and TL.Location_Qty > 0) d where (d.TTL - d.Location_Qty) < d.Qty_To_Move Order by d.Part_NO, d.HU, d.Receipt_Date, d.Location_No