BOM展開

WITH BOM(Father,ItemCode,Quantity,iLevel)

AS

(  

SELECT T0.Code,T1.Code ,CONVERT(NUMERIC(23,15), T1.Quantity/T0.Qauntity) Quantity , 1 iLevel

FROM OITT T0

     JOIN ITT1 T1 ON T0.Code = T1.Father

UNION ALL

SELECT T0.Father,T2.Code,CONVERT(NUMERIC(23,15),(T2.Quantity/T1.Qauntity)*T0.Quantity) ,T0.iLevel+1

FROM BOM T0

      JOIN OITT T1 ON T0.ItemCode = T1.Code

      JOIN ITT1 T2 ON T1.Code = T2.Father

)


SELECT T1.SlpName 業務員,T1.CardCode 客戶代碼,T1.CardName 客戶名稱,T1.DocEntry 單號,T1.NumAtCard 業務訂單號,

       T1.ItemCode 成品編號,T1.Dscription 產品描述,T1.SubcatNum 客戶件號,MAX(T1.Quantity) 訂單量,MAX(T1.DvlQty)已發貨量,

       MAX(T1.OpenCreQty) 缺貨量,T2.U_Buyer 採購員,T3.CardName 供應商名稱,

       CASE WHEN T2.TaxCtg='CG01' THEN '外購' 

               WHEN  T2.TaxCtg='WX01' THEN '委外'

               WHEN  T2.TaxCtg='ZP01' THEN '裝配'

               WHEN  T2.TaxCtg='PG01' THEN '拋光'

               WHEN  T2.TaxCtg='JJ01' THEN '機加'

               WHEN  T2.TaxCtg='YZ01' THEN '壓鑄'

               WHEN  T2.TaxCtg='ZS01' THEN '注塑'

                ELSE '其它' END 屬性 ,

      T0.ItemCode 物料編號,T2.ItemName 物料描述,CEILING(MAX(T1.OpenCreQty) *MAX(T0.quantity)) 生產需求量

 FROM (

      SELECT T0.[DocEntry], T2.[SlpName], T1.[LineStatus],T1.[LineNum], T0.[CardCode], T0.[CardName], 

                 T0.[NumAtCard], T1.[ItemCode], T1.[Dscription], T1.[SubCatNum], T1.[Quantity], T1.Quantity-T1.OpenCreQty DvlQty,

             T1.[OpenCreQty], T1.[ShipDate]

             FROM [dbo].ORDR T0 JOIN RDR1 T1 ON T1.DocEntry=T0.DocEntry JOIN OSLP T2 ON T2.SlpCode=T0.SlpCode

             WHERE T1.LineStatus='O'

        ) T1 

    JOIN BOM T0 ON  T1.ItemCode =T0.father  

    JOIN OITM T2 ON T0.ItemCode=T2.ItemCode

    LEFT JOIN OCRD T3 ON T3.cardcode=T2.cardcode

WHERE  T0.ItemCode NOT LIKE '5%' 

GROUP BY T1.SlpName,T1.CardCode,T1.CardName,T1.DocEntry,T1.NumAtCard,T1.ItemCode,T1.Dscription ,

         T1.SubcatNum,T2.U_Buyer,T3.CardName,T0.Itemcode,T2.ItemName,T2.TaxCtg

ORDER BY T1.SlpName


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章