A Microsoft extension to the ANSI SQL language that includes procedural programming, local variables, and various support functions.
;with cte1 as (
Select i.CodeItem as CodeItem,(I.Descriptionitem ) as Descriptionitem,
Isnull(SUM(P.prdqty),0)as Produce_QTY,P.OrderNo
From #ItemMasterFile I
left join #Probale P on I.CodeItem=P.CodeItem and P.OrderNO=001 and p.DelID is null
where
i.CodeItem IN(
SELECT CodeItem FROM #OrderDetail
UNION
SELECT CodeItem FROM #Probale
UNION
SELECT CodeItem FROM #tbl_PckDetail)
group by i.Descriptionitem,p.OrderNo,i.CodeItem)
,cte2 as (SELECT I.CodeItem,I.Descriptionitem, D.orderno as OrderNo, D.orderqty
FROM #OrderDetail D
inner join #ItemMasterFile I on I.codeitem=D.Codeitem
WHERE (D.OrderNO = 001))
,
cte3 as(
Select i.CodeItem,(I.Descriptionitem )as Descriptionitem,
Isnull(SUM(PD.QTY),0)as Pack_QTy,M.Orderno
From #tbl_PckDetail PD
full join #ItemMasterFile I on I.CodeItem=PD.CodeItem
inner join #tbl_PackM M on M.PID=PD.PID
where M.OrderNO=001 and PD.DelID is null
group by i.Descriptionitem,M.OrderNo,i.CodeItem
)
select cte1.Descriptionitem,isnull(cte1.Produce_QTY,0)Produce_QTY,
ISNULL(cte2.orderqty,0)Orderqty,isnull(Pack_QTy,0)Pack_QTy,
isnull((cte1.Produce_QTY-cte3.Pack_QTy),0) Pending
from cte1
full join cte2 on cte1.CodeItem=cte2.CodeItem
full join cte3 on cte1.CodeItem=cte3.CodeItem
union
select 'Total' Total,isnull(sum(cte1.Produce_QTY),0)Produce_QTY,ISNULL(sum(cte2.orderqty),0)Orderqty,isnull(sum(Pack_QTy),0)Pack_QTy,'' as Pending from cte1
full join cte2 on cte1.CodeItem=cte2.CodeItem
full join cte3 on cte1.CodeItem=cte3.CodeItem
order by orderqty
Output:
Or:
;with cte1 as (
Select i.CodeItem as CodeItem,(I.Descriptionitem )as Descriptionitem,
Isnull(SUM(P.prdqty),0)as Produce_QTY,P.OrderNo
From #Probale P
left join #ItemMasterFile I on I.CodeItem=P.CodeItem
where P.OrderNO=001 and p.DelID is null
group by i.Descriptionitem,p.OrderNo,i.CodeItem
)
,cte2 as (SELECT I.CodeItem,I.Descriptionitem, D.orderno as OrderNo, D.orderqty
FROM #OrderDetail D inner join #ItemMasterFile I on I.codeitem=D.Codeitem
WHERE (D.OrderNO = 001)
),
cte3 as(
Select i.CodeItem,(I.Descriptionitem )as Descriptionitem,Isnull(SUM(PD.QTY),0)as Pack_QTy,M.Orderno
From #tbl_PckDetail PD
full join #ItemMasterFile I on I.CodeItem=PD.CodeItem
inner join #tbl_PackM M on M.PID=PD.PID
where M.OrderNO=001 and PD.DelID is null
group by i.Descriptionitem,M.OrderNo,i.CodeItem
)
select COALESCE(cte1.Descriptionitem,cte2.Descriptionitem,cte3.Descriptionitem) Descriptionitem
,isnull(cte1.Produce_QTY,0)Produce_QTY,ISNULL(cte2.orderqty,0)Orderqty,isnull(Pack_QTy,0)Pack_QTy,isnull((cte1.Produce_QTY-Pack_QTy),0) Pending from cte1
full join cte2 on cte1.CodeItem=cte2.CodeItem
full join cte3 on cte1.CodeItem=cte3.CodeItem
union
select 'Total' Total,isnull(sum(cte1.Produce_QTY),0)Produce_QTY,ISNULL(sum(cte2.orderqty),0)Orderqty,isnull(sum(Pack_QTy),0)Pack_QTy,'' as Pending from cte1
full join cte2 on cte1.CodeItem=cte2.CodeItem
full join cte3 on cte1.CodeItem=cte3.CodeItem
order by orderqty
Output: