Hi Guys,I have this query that create 3 months coverage.I Just created 4 CTE and i think this will add more CTEs until i got my desired result. Its posible to incorporate or simplify some of my calculation. this query is already running. any idea guys. Btw, i did not make this query into SP format due to we dont have the permission to create SP which we prefer text format query.thanks.Here is my codes/query.-SAMPLE RAW DATACreate table #Sample(LFlag int,AsuProdLinedID nvarchar(35),Model nvarchar(35),Partno nvarchar(35),Finishedfone int,RequiredQty int,NewPartsQty int,ReclaimQty int,RefurbQty int,Total int)Insert into #SampleSelect 3,'LineA','ALLY','LGE3343',22,22,0,20,0,20 unionSelect 2,'Rework','ALLY','LGE3343',112,112,0,89,0,89 unionSelect 3,'Rework','ALLY','LGE3343',77,77,0,79,0,79 unionSelect 2,'LineA','ALLY','LGE3343',494,494,0,449,0,449 unionSelect 3,'Line10','ALLY','LGE3343',998,998,139,812,0,951 ;With CTAS(Select t.Partno, Stuff((Select distinct ',' + model from #Sample where partNo=t.partNo for xml path ('')),1,1,'') as Model From #Sample tGroup by t.Partno),CTE_SUMMAS(Select CT.PARTNO, CT.Model, SUM(Case When S.LFlag=3 and s.asuprodlineid<>'Rework' Then S.Finishedfone Else 0 End) As Produceqty3, SUM(Case When S.LFlag=3 THen S.REQUIREDQTY Else 0 End) As TOTAL3, SUM(Case When S.LFlag=3 THen S.RECLAIMQTY Else 0 End) As RECLAIMQTY3, SUM(Case When S.LFlag=3 THen S.NEWPARTSQTY Else 0 End) As OEMQTY3, SUM(Case When S.LFlag=3 THen S.REFURBQTY Else 0 End) As REFURBQTY3, SUM(Case When S.LFlag=3 Then s.RECLAIMQTY+s.REFURBQTY Else 0 End) as REC_REPAIRQTY3, CASE WHEN S.LFlag=3 and SUM(S.REQUIREDQTY)-SUM(S.NEWPARTSQTY+S.RECLAIMQTY+S.REFURBQTY) > 0 THEN SUM(S.REQUIREDQTY)-SUM(S.NEWPARTSQTY+S.RECLAIMQTY+S.REFURBQTY) ELSE 0 END AS CORESQTY3, SUM(Case When S.LFlag=2 and s.asuprodlineid<>'Rework' THen S.Finishedfone Else 0 End) As Produceqty2, SUM(Case When S.LFlag=2 THen S.REQUIREDQTY Else 0 End) As TOTAL2, SUM(Case When S.LFlag=2 THen S.RECLAIMQTY Else 0 End) As RECLAIMQTY2, SUM(Case When S.LFlag=2 THen S.NEWPARTSQTY Else 0 End) As OEMQTY2, SUM(Case When S.LFlag=2 THen S.REFURBQTY Else 0 End) As REFURBQTY2, SUM(Case When S.LFlag=2 Then s.RECLAIMQTY+s.REFURBQTY Else 0 End) as REC_REPAIRQTY2, CASE WHEN S.LFlag=2 and SUM(S.REQUIREDQTY)-SUM(S.NEWPARTSQTY+S.RECLAIMQTY+S.REFURBQTY) > 0 THEN SUM(S.REQUIREDQTY)-SUM(S.NEWPARTSQTY+S.RECLAIMQTY+S.REFURBQTY) ELSE 0 END AS CORESQTY2, SUM(Case When S.LFlag=1 and s.asuprodlineid<>'Rework' THen S.Finishedfone Else 0 End) As Produceqty1, SUM(Case When S.LFlag=1 THen S.RECLAIMQTY Else 0 End) As RECLAIMQTY1, SUM(Case When S.LFlag=1 THen S.NEWPARTSQTY Else 0 End) As OEMQTY1, SUM(Case When S.LFlag=1 THen S.REFURBQTY Else 0 End) As REFURBQTY1, SUM(Case When S.LFlag=1 Then s.RECLAIMQTY+s.REFURBQTY Else 0 End) as REC_REPAIRQTY1, CASE WHEN S.LFlag=1 and SUM(S.REQUIREDQTY)-SUM(S.NEWPARTSQTY+S.RECLAIMQTY+S.REFURBQTY) > 0 THEN SUM(S.REQUIREDQTY)-SUM(S.NEWPARTSQTY+S.RECLAIMQTY+S.REFURBQTY) ELSE 0 END AS CORESQTY1from CTinner join #Data sON CT.PARTNO=s.partno COLLATE Chinese_Taiwan_Stroke_CI_ASGROUP BY CT.PARTNO, CT.Model, S.LFlag, S.asuprodlineid, S.Produceqty), CTE_FINAL AS( Select Partno ,Model --Current Month coverage ,SUM(Produceqty3) as Produceqty3 ,SUM(RECLAIMQTY3+OEMQTY3+REFURBQTY3+CORESQTY3) AS TOTAL3 ,SUM(RECLAIMQTY3) as RECLAIMQTY3 ,SUM(OEMQTY3) as OEMQTY3 ,SUM(REFURBQTY3) as REFURBQTY3 ,SUM(CORESQTY3) as CORESQTY3 ,SUM(REC_REPAIRQTY3) as REC_REPAIRQTY3 ,CASE WHEN NULLIF(SUM(CORESQTY3),0)/NULLIF(SUM(RECLAIMQTY3+OEMQTY3+REFURBQTY3+CORESQTY3),0) > 0 THEN ROUND(NULLIF(SUM(CORESQTY3),0)/NULLIF(SUM(RECLAIMQTY3+OEMQTY3+REFURBQTY3+CORESQTY3),0),2) ELSE 0 END AS CoresUsage3 ,CASE WHEN NULLIF(SUM(OEMQTY3),0)/NULLIF(SUM(RECLAIMQTY3+OEMQTY3+REFURBQTY3+CORESQTY3),0) > 0 THEN ROUND(NULLIF(SUM(OEMQTY3),0)/NULLIF(SUM(RECLAIMQTY3+OEMQTY3+REFURBQTY3+CORESQTY3),0),2) ELSE 0 END AS OEMUsage3 ,CASE WHEN NULLIF(SUM(REC_REPAIRQTY3),0)/NULLIF(SUM(RECLAIMQTY3+OEMQTY3+REFURBQTY3+CORESQTY3),0) > 0 THEN ROUND(NULLIF(SUM(REC_REPAIRQTY3),0)/NULLIF(SUM(RECLAIMQTY3+OEMQTY3+REFURBQTY3+CORESQTY3),0),2) ELSE 0 END AS ReclaimUsage3 --Second Month coverage ,SUM(Produceqty2) as Produceqty2 ,SUM(RECLAIMQTY2+OEMQTY2+REFURBQTY2+CORESQTY2) as TOTAL2 ,SUM(RECLAIMQTY2) as RECLAIMQTY2 ,SUM(OEMQTY2) as OEMQTY2 ,SUM(REFURBQTY2) as REFURBQTY2 ,SUM(CORESQTY2) as CORESQTY2 ,SUM(REC_REPAIRQTY2) as REC_REPAIRQTY2 ,CASE WHEN NULLIF(SUM(CORESQTY2),0)/NULLIF(SUM(RECLAIMQTY2+OEMQTY2+REFURBQTY2+CORESQTY2),0) > 0 THEN ROUND(NULLIF(SUM(CORESQTY2),0)/NULLIF(SUM(RECLAIMQTY2+OEMQTY2+REFURBQTY2+CORESQTY2),0),2) ELSE 0 END AS CoresUsage2 ,CASE WHEN NULLIF(SUM(OEMQTY2),0)/NULLIF(SUM(RECLAIMQTY2+OEMQTY2+REFURBQTY2+CORESQTY2),0) > 0 THEN ROUND(NULLIF(SUM(OEMQTY2),0)/NULLIF(SUM(RECLAIMQTY2+OEMQTY2+REFURBQTY2+CORESQTY2),0),2) ELSE 0 END AS OEMUsage2 ,CASE WHEN NULLIF(SUM(REC_REPAIRQTY2),0)/NULLIF(SUM(RECLAIMQTY2+OEMQTY2+REFURBQTY2+CORESQTY2),0) > 0 THEN ROUND(NULLIF(SUM(REC_REPAIRQTY2),0)/NULLIF(SUM(RECLAIMQTY2+OEMQTY2+REFURBQTY2+CORESQTY2),0),2) ELSE 0 END AS ReclaimUsage2 --Third Month coverage ,SUM(Produceqty1) as Produceqty1 ,SUM(RECLAIMQTY1+OEMQTY1+REFURBQTY1+CORESQTY1) as TOTAL1 ,SUM(RECLAIMQTY1) as RECLAIMQTY1 ,SUM(OEMQTY1) as OEMQTY1 ,SUm(REFURBQTY1) as REFURBQTY1 ,SUM(CORESQTY1) as CORESQTY1 ,SUM(REC_REPAIRQTY1) as REC_REPAIRQTY1 ,CASE WHEN NULLIF(SUM(CORESQTY1),0)/NULLIF(SUM(RECLAIMQTY1+OEMQTY1+REFURBQTY1+CORESQTY1),0) > 0 THEN ROUND(NULLIF(SUM(CORESQTY1),0)/NULLIF(SUM(RECLAIMQTY1+OEMQTY1+REFURBQTY1+CORESQTY1),0),2) ELSE 0 END AS CoresUsage1 ,CASE WHEN NULLIF(SUM(OEMQTY1),0)/NULLIF(SUM(RECLAIMQTY1+OEMQTY1+REFURBQTY1+CORESQTY1),0) > 0 THEN ROUND(NULLIF(SUM(OEMQTY1),0)/NULLIF(SUM(RECLAIMQTY1+OEMQTY1+REFURBQTY1+CORESQTY1),0),2) ELSE 0 END AS OEMUsage1 ,CASE WHEN NULLIF(SUM(REC_REPAIRQTY1),0)/NULLIF(SUM(RECLAIMQTY1+OEMQTY1+REFURBQTY1+CORESQTY1),0) > 0 THEN ROUND(NULLIF(SUM(REC_REPAIRQTY1),0)/NULLIF(SUM(RECLAIMQTY1+OEMQTY1+REFURBQTY1+CORESQTY1),0),2) ELSE 0 END AS ReclaimUsage1from CTE_SUMMGroup by partno, model)Select Partno ,model ,ProduceQty3 ,Total3 ,ReclaimQty3 ,OEMQty3 ,RefurbQty3 ,Rec_RepairQty3 ,CoresUsage3 ,OEMUsage3 ,ReclaimUsage3 ,ProduceQty2 ,Total2 ,ReclaimQty2 ,OEMQty2 ,RefurbQty2 ,Rec_RepairQty2 ,CoresUsage2 ,OEMUsage2 ,ReclaimUsage2 ,ProduceQty1 ,Total1 ,ReclaimQty1 ,OEMQty1 ,RefurbQty1 ,Rec_RepairQty1 ,CoresUsage1 ,OEMUsage1 ,ReclaimUsage1 --Just add this calculation ,ActualRec_Rep3=(CoresUsage3+ReclaimUsage3) ,ActualRec_Rep2=(CoresUsage2+ReclaimUsage2) ,ActualRec_Rep1=(CoresUsage1+ReclaimUsage1)From CTE_FINAL --I need to create new CTE to summarize the result of ActualRec_rep1 to rep3 to generate HARMEAN.