Guest User

Untitled

a guest
Aug 15th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.64 KB | None | 0 0
  1. with P_Parts_CTE (Company, PartNum)
  2. as
  3. (
  4. select Company, PartNum
  5. from dbo.Part
  6. where Company = 'Comp' and TypeCode = 'P'
  7. ),
  8. P_Part_Inv_CTE (Company, PartNum, OnHandQty)
  9. as
  10. (
  11. select a.Company, a.PartNum, Sum(OnHandQty)
  12. from P_Parts_CTE as a
  13. left outer join dbo.PartWhse as b
  14. on a.Company = b.Company and a.PartNum = b.PartNum
  15. group by a.Company, a.PartNum
  16. ),
  17. PartDtl_Sum_CTE (Company, PartNum, Supply, Demand)
  18. as
  19. (
  20. select c.Company, c.PartNum, Sum(case when d.RequirementFlag = 0 then d.Quantity else 0 end) as Supply, Sum(case when d.RequirementFlag = 1 then d.Quantity else 0 end) as Demand
  21. from P_Parts_CTE as c
  22. left outer join dbo.PartDtl as d
  23. on c.Company = d.Company and c.PartNum = d.PartNum
  24. group by c.Company, c.PartNum
  25. ),
  26. PartDtl_CTE (Company, PartNum, Balance)
  27. as
  28. (
  29. select e.Company, e.PartNum, (e.OnHandQty + f.Supply - f.Demand) as Balance
  30. from P_Part_Inv_CTE as e
  31. left outer join PartDtl_Sum_CTE as f
  32. on e.Company = f.Company and e.PartNum = f.PartNum
  33. group by e.Company, e.PartNum, e.OnHandQty, f.Supply, f.Demand
  34. ),
  35. Parts_Neg_CTE (Company, PartNum)
  36. as
  37. (
  38. select Company, PartNum
  39. from PartDtl_CTE
  40. where Balance < 0
  41. ),
  42. Reverse_Recursive_BOM_CTE (Company, PartNum, [Level], MtlPartNUm)
  43. as
  44. (
  45. select h.Company, h.PartNum, 0 as [Level], h.MtlPartNum
  46. from Parts_Neg_CTE as g
  47. inner join dbo.PartMtl as h
  48. on g.Company = h.Company and g.PartNum = h.PartNum
  49. union all
  50. select i.Company, i.PartNum, [Level] - 1, i.MtlPartNum
  51. from dbo.PartMtl as i
  52. inner join Reverse_Recursive_BOM_CTE as j
  53. on i.MtlPartNum = j.PartNum
  54. )
  55. select *
  56. from Reverse_Recursive_BOM_CTE
Add Comment
Please, Sign In to add comment