Advertisement
Guest User

Untitled

a guest
Jun 20th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.10 KB | None | 0 0
  1. WITH RECURSIVE nodes (upline_id, upline_code, upline_name, member_id, member_code, member_name, active, flg_data_complete, rank_name, sponsor_id, sponsor_code, sponsor_name, path, depth, nbp, nbg, bnp, bng, nbg_accumulation) AS
  2. (
  3. SELECT A.upline_id, B.member_code, B.name,
  4. A.member_id, C.member_code, C.name, C.active, C.flg_data_complete, H.rank_name,
  5. sponsor.member_id, sponsor.member_code, sponsor.name,
  6. ARRAY[A.upline_id,A.member_id], 1,
  7. COALESCE(E.nbp, F.nbp) as nbp, COALESCE(E.nbg, F.nbg) as nbg,
  8. COALESCE(E.bnp,F.bnp) AS bnp, COALESCE(E.bng,F.bng) AS bng,
  9. COALESCE(E.nbg_accumulation, D.balance_nbg) AS nbg_accumulation
  10. FROM mlm_member_tree A
  11. INNER JOIN mlm_member B ON A.upline_id = B.member_id
  12. INNER JOIN mlm_member C ON A.member_id = C.member_id
  13. INNER JOIN mlm_member sponsor ON sponsor.member_id = C.sponsor_id
  14. INNER JOIN mlm_member_bonus_balance D ON D.member_id = A.member_id
  15. INNER JOIN mlm_ranking H ON C.ranking = H.ranking_id
  16. LEFT JOIN mlm_monthly_member_bonus E ON E.member_id = A.member_id AND E.bonus_period=:pPeriod
  17. LEFT JOIN mlm_member_daily_nbp_nbg F ON F.member_id = A.member_id AND period=:pPeriod
  18. WHERE A.upline_id = :uplineId
  19. AND A.upline_id <> A.member_id
  20. AND A.depth = 2
  21. UNION ALL
  22. SELECT A.upline_id, B.member_code, B.name,
  23. A.member_id, C.member_code, C.name, C.active, C.flg_data_complete, H.rank_name,
  24. sponsor.member_id, sponsor.member_code, sponsor.name,
  25. path || A.member_id, D.depth + 1,
  26. COALESCE(F.nbp, G.nbp) as nbp, COALESCE(F.nbg, G.nbg) as nbg,
  27. COALESCE(F.bnp,G.bnp) AS bnp, COALESCE(F.bng,G.bng) AS bng, COALESCE(F.nbg_accumulation, E.balance_nbg) AS nbg_accumulation
  28. FROM mlm_member_tree A
  29. INNER JOIN mlm_member B ON A.upline_id = B.member_id
  30. INNER JOIN mlm_member C ON A.member_id = C.member_id
  31. INNER JOIN mlm_member sponsor ON sponsor.member_id = C.sponsor_id
  32. INNER JOIN nodes D ON A.upline_id = D.member_id
  33. INNER JOIN mlm_member_bonus_balance E ON E.member_id = A.member_id
  34. INNER JOIN mlm_ranking H ON C.ranking = H.ranking_id
  35. LEFT JOIN mlm_monthly_member_bonus F ON F.member_id = A.member_id AND F.bonus_period=:pPeriod
  36. LEFT JOIN mlm_member_daily_nbp_nbg G ON G.member_id = A.member_id AND period=:pPeriod
  37.  
  38. WHERE
  39. A.upline_id <> A.member_id
  40. AND A.depth = 2
  41. AND D.depth < 7
  42. )
  43. SELECT 0 as depth, A.member_id, C.member_code, C.member_code || ', ' || C.name as member, C.active, C.flg_data_complete, H.rank_name,
  44. sponsor.member_id, sponsor.member_code || ', ' || sponsor.name as sponsor,
  45. COALESCE(E.nbp, F.nbp) as nbp, COALESCE(E.nbg, F.nbg) as nbg,
  46. COALESCE(E.bnp,F.bnp) AS bnp, COALESCE(E.bng,F.bng) AS bng,
  47. COALESCE(E.nbg_accumulation, D.balance_nbg) AS nbg_accumulation,
  48. ARRAY[A.member_id] as path
  49. FROM mlm_member_tree A
  50. INNER JOIN mlm_member B ON A.member_id = B.member_id
  51. INNER JOIN mlm_member C ON A.member_id = C.member_id
  52. INNER JOIN mlm_member sponsor ON sponsor.member_id = C.sponsor_id
  53. INNER JOIN mlm_member_bonus_balance D ON D.member_id = A.member_id
  54. INNER JOIN mlm_ranking H ON C.ranking = H.ranking_id
  55. LEFT JOIN mlm_monthly_member_bonus E ON E.member_id = A.member_id AND E.bonus_period=:pPeriod
  56. LEFT JOIN mlm_member_daily_nbp_nbg F ON F.member_id = A.member_id AND period=:pPeriod
  57. WHERE A.upline_id = :uplineId
  58. AND A.upline_id = A.member_id
  59. AND A.depth = 1
  60. UNION
  61. SELECT depth, member_id, member_code, repeat(' ',(depth)*2) || member_code || ', ' || member_name as member, active, flg_data_complete, rank_name,
  62. sponsor_id, sponsor_code || ', ' || sponsor_name as sponsor,
  63. nbp, nbg, bnp, bng, nbg_accumulation,
  64. path
  65. FROM nodes
  66. ORDER BY path, member_code
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement