ahmedrahil786

Rahil Leon - MFT Increase Analyses

Apr 4th, 2019
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.15 KB | None | 0 0
  1. select
  2.  
  3. A.memberid,
  4. A.day,
  5. A.ridelength ,
  6. A.ridelengthinminutes,
  7. A.startingday,
  8. A.startingtime,
  9. B.regionname,
  10. B.carname,
  11. A.rid,
  12. A.carid,
  13. B.zoneid,
  14. A.state,
  15. A.amount,
  16. C.mft_21,
  17. C.TotalMFTs
  18.  
  19.  
  20.  
  21. from (select
  22. distinct m.id as memberid,
  23. sum(p.amount) as amount,
  24. date(r.occupy_start_at + interval '8' hour) as day,
  25. timestampdiff(minute,r.start_at, r.end_at)/60 as ridelength,
  26. TIMESTAMPDIFF(minute,r.start_at + interval '8' hour,r.end_at + interval '8' hour) as ridelengthinminutes,
  27. weekday(r.occupy_start_at + interval '8' hour) as startingday,
  28. hour(r.occupy_start_at + interval '8' hour) as startingtime,
  29. r.id as rid,
  30. r.state as state,
  31. r.car_id as carid
  32.  
  33. from members m
  34.  
  35. left outer join reservations r
  36. on m.id = r.member_id
  37.  
  38. left outer join payments p
  39. on p.reservation_id = r.id
  40.  
  41. where CONVERT_TZ(r.start_at, '+00:00', '+8:00') >= '2019-3-1 00:00'
  42. and CONVERT_TZ(r.start_at, '+00:00', '+8:00') < '2019-5-1'
  43. and m.imaginary = 'normal'
  44. and m.state = 'normal'
  45. and r.state IN ('completed','inuse','reserved')
  46. and p.state = 'normal'
  47. and p.paid_type = 'card'
  48.  
  49. group by m.id,r.id
  50. order by amount desc) A
  51.  
  52. left outer join
  53.  
  54. (select
  55. c.id as carid,
  56. cc.car_name as carname,
  57. z.region as regionname,
  58. z.id as zoneid
  59. from cars c
  60.  
  61. left outer join car_classes cc
  62. on cc.id = c.car_class_id
  63.  
  64. left outer join zones z
  65. on z.id = c.zone_id
  66.  
  67. left outer join car_zone_logs as cz
  68. on c.id = cz.car_id
  69.  
  70. where cz.car_state = 'Normal'
  71. #and z.state = 'normal'
  72.  
  73. group by c.id) B
  74.  
  75. on A.carid = B.carid
  76.  
  77. left outer join
  78.  
  79. (Select
  80. ch.member_id as memberid,
  81. count(distinct case when ch.kind = 'subscriptionFee' and str_to_date(m.birthday, '%Y%m%d') >= NOW() - interval '21' year then ch.member_id end) as mft_21,
  82. count(distinct case when ch.kind = 'subscriptionFee' then ch.member_id end) as TotalMFTs
  83.  
  84. from charges ch
  85.  
  86. join members m
  87. on m.id = ch.member_id
  88.  
  89. join reservations r
  90. on r.id = ch.member_id
  91.  
  92. where CONVERT_TZ(r.start_at, '+00:00', '+8:00') >= '2019-3-1 00:00'
  93. and CONVERT_TZ(r.start_at, '+00:00', '+8:00') < '2019-5-1'
  94.  
  95. group by m.id
  96.  
  97. ) C
  98.  
  99. on C.memberid = A.memberid
  100.  
  101. group by A.memberid,B.carid,A.rid
  102.  
  103. order by A.amount desc
Advertisement
Add Comment
Please, Sign In to add comment