Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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
- (
- SELECT A.upline_id, B.member_code, B.name,
- A.member_id, C.member_code, C.name, C.active, C.flg_data_complete, H.rank_name,
- sponsor.member_id, sponsor.member_code, sponsor.name,
- ARRAY[A.upline_id,A.member_id], 1,
- COALESCE(E.nbp, F.nbp) as nbp, COALESCE(E.nbg, F.nbg) as nbg,
- COALESCE(E.bnp,F.bnp) AS bnp, COALESCE(E.bng,F.bng) AS bng,
- COALESCE(E.nbg_accumulation, D.balance_nbg) AS nbg_accumulation
- FROM mlm_member_tree A
- INNER JOIN mlm_member B ON A.upline_id = B.member_id
- INNER JOIN mlm_member C ON A.member_id = C.member_id
- INNER JOIN mlm_member sponsor ON sponsor.member_id = C.sponsor_id
- INNER JOIN mlm_member_bonus_balance D ON D.member_id = A.member_id
- INNER JOIN mlm_ranking H ON C.ranking = H.ranking_id
- LEFT JOIN mlm_monthly_member_bonus E ON E.member_id = A.member_id AND E.bonus_period=:pPeriod
- LEFT JOIN mlm_member_daily_nbp_nbg F ON F.member_id = A.member_id AND period=:pPeriod
- WHERE A.upline_id = :uplineId
- AND A.upline_id <> A.member_id
- AND A.depth = 2
- UNION ALL
- SELECT A.upline_id, B.member_code, B.name,
- A.member_id, C.member_code, C.name, C.active, C.flg_data_complete, H.rank_name,
- sponsor.member_id, sponsor.member_code, sponsor.name,
- path || A.member_id, D.depth + 1,
- COALESCE(F.nbp, G.nbp) as nbp, COALESCE(F.nbg, G.nbg) as nbg,
- COALESCE(F.bnp,G.bnp) AS bnp, COALESCE(F.bng,G.bng) AS bng, COALESCE(F.nbg_accumulation, E.balance_nbg) AS nbg_accumulation
- FROM mlm_member_tree A
- INNER JOIN mlm_member B ON A.upline_id = B.member_id
- INNER JOIN mlm_member C ON A.member_id = C.member_id
- INNER JOIN mlm_member sponsor ON sponsor.member_id = C.sponsor_id
- INNER JOIN nodes D ON A.upline_id = D.member_id
- INNER JOIN mlm_member_bonus_balance E ON E.member_id = A.member_id
- INNER JOIN mlm_ranking H ON C.ranking = H.ranking_id
- LEFT JOIN mlm_monthly_member_bonus F ON F.member_id = A.member_id AND F.bonus_period=:pPeriod
- LEFT JOIN mlm_member_daily_nbp_nbg G ON G.member_id = A.member_id AND period=:pPeriod
- WHERE
- A.upline_id <> A.member_id
- AND A.depth = 2
- AND D.depth < 7
- )
- 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,
- sponsor.member_id, sponsor.member_code || ', ' || sponsor.name as sponsor,
- COALESCE(E.nbp, F.nbp) as nbp, COALESCE(E.nbg, F.nbg) as nbg,
- COALESCE(E.bnp,F.bnp) AS bnp, COALESCE(E.bng,F.bng) AS bng,
- COALESCE(E.nbg_accumulation, D.balance_nbg) AS nbg_accumulation,
- ARRAY[A.member_id] as path
- FROM mlm_member_tree A
- INNER JOIN mlm_member B ON A.member_id = B.member_id
- INNER JOIN mlm_member C ON A.member_id = C.member_id
- INNER JOIN mlm_member sponsor ON sponsor.member_id = C.sponsor_id
- INNER JOIN mlm_member_bonus_balance D ON D.member_id = A.member_id
- INNER JOIN mlm_ranking H ON C.ranking = H.ranking_id
- LEFT JOIN mlm_monthly_member_bonus E ON E.member_id = A.member_id AND E.bonus_period=:pPeriod
- LEFT JOIN mlm_member_daily_nbp_nbg F ON F.member_id = A.member_id AND period=:pPeriod
- WHERE A.upline_id = :uplineId
- AND A.upline_id = A.member_id
- AND A.depth = 1
- UNION
- SELECT depth, member_id, member_code, repeat(' ',(depth)*2) || member_code || ', ' || member_name as member, active, flg_data_complete, rank_name,
- sponsor_id, sponsor_code || ', ' || sponsor_name as sponsor,
- nbp, nbg, bnp, bng, nbg_accumulation,
- path
- FROM nodes
- ORDER BY path, member_code
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement