ahmedrahil786

Bookings Vs Members - 3 times coupon Trail

Jul 10th, 2019
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.69 KB | None | 0 0
  1. Select P.*, Q.Active_date as MFT_date,Q.last_resev_date as last_resev_date, Q.daysdiff as active_period from
  2. (select
  3. distinct r.member_id as memberid,
  4. m.display_name as name,
  5. count(r.id) as reservations,
  6. IFNULL(round(B.charges,2),0) as gross_rev,
  7. round((IFNULL(B.charges,0) - IFNULL(A.coupon,0)),2) as net_rev,
  8. round(IFNULL((IFNULL(A.coupon,0)/B.charges),0),2) as coupon_rate
  9. from reservations r
  10. join members m on m.id = r.member_id
  11. left join
  12. (select
  13. p.member_id as mid, month(p.created_at + interval '8' hour) as month,Year(p.created_at + interval '8' hour) as year, IFNULL(p.amount,0) as coupon
  14. from payments p
  15. where p.state = 'normal' and p.paid_type = 'coupon'
  16. group by p.member_id) A
  17. on A.mid = r.member_id
  18. left join
  19. (select
  20. c.member_id as mid, month(c.created_at + interval '8' hour) as month, Year(c.created_at + interval '8' hour) as year, sum(c.amount) as charges
  21. from charges c
  22. where c.state = 'normal' and c.kind IN ('rent' , 'oneway', 'd2d', 'mileage')
  23. group by c.member_id) B
  24. on B.mid = r.member_id
  25. where m.imaginary in ('normal')
  26. and r.member_id not in ('125', '127')
  27. and r.state in ('completed','inUse')
  28. group by memberid
  29. order by gross_rev desc) P
  30. join
  31. (select
  32. A.mid as mid, A.Mindate as Active_date, A.Maxdate as last_resev_date, DATEDIFF(A.Maxdate,A.Mindate) as daysdiff, A.resv as total_resv from
  33. (select
  34. distinct r.member_id as mid,
  35. count(r.id) as resv,
  36. Min(Date(r.start_at + interval '8' hour)) as Mindate,
  37. Max(Date(r.start_at + interval '8' hour)) as Maxdate
  38. from reservations r
  39. join members m on m.id = r.member_id
  40. where r.state in ('completed','inUse')
  41. and m.imaginary in ('normal')
  42. and r.member_id not in ('125', '127')
  43. group by 1) A) Q
  44. on Q.mid = P.memberid
Advertisement
Add Comment
Please, Sign In to add comment