ahmedrahil786

Total Bookings - Coupon Rates (Charges+payments)

May 17th, 2019
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.27 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. IFNULL(ma.recommender,"") as referral,
  16. IFNULL(coupons.comment,"") as coupon,
  17. IFNULL(round(c.rev,2),0) as rev,
  18. round((IFNULL(c.rev,0) - IFNULL(p.coupon,0)),2) as net_rev,
  19. round(IFNULL((IFNULL(p.coupon,0)/c.rev),0),2) as coupon_rate
  20.  
  21.  
  22. from (select
  23. distinct m.id as memberid,
  24. date(r.occupy_start_at + interval '8' hour) as day,
  25. timestampdiff(minute,CONVERT_TZ(r.start_at, '+00:00', '+8:00'), CONVERT_TZ(r.end_at, '+00:00', '+8:00'))/60 as ridelength,
  26. TIMESTAMPDIFF(minute,CONVERT_TZ(r.start_at, '+00:00', '+8:00'), CONVERT_TZ(r.end_at, '+00:00', '+8:00')) 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. from members m
  33.  
  34. left outer join reservations r on m.id = r.member_id
  35.  
  36. where CONVERT_TZ(r.start_at, '+00:00', '+8:00') >= '2019-1-1 00:00'
  37. and CONVERT_TZ(r.start_at, '+00:00', '+8:00') < '2019-9-1'
  38. and m.imaginary = 'normal'
  39. and m.state = 'normal'
  40. and r.state IN ('completed','inuse','reserved')
  41.  
  42. group by m.id,r.id
  43. ) A
  44.  
  45. left outer join
  46.  
  47. (select
  48. c.id as carid,cc.car_name as carname,z.region as regionname,z.id as zoneid from cars c
  49. left outer join car_classes cc on cc.id = c.car_class_id
  50. left outer join zones z on z.id = c.zone_id
  51. left outer join car_zone_logs as cz on c.id = cz.car_id
  52. where cz.car_state = 'Normal'
  53. #and z.state = 'normal'
  54. group by c.id) B
  55. on A.carid = B.carid
  56.  
  57. left join (
  58. select IFNULL(payments.amount,0) as coupon, payments.reservation_id as rid
  59. from payments
  60. where payments.state = 'normal' and payments.paid_type = 'coupon'
  61. ) as p on p.rid = A.rid
  62. left join (
  63. select sum(charges.amount) as rev, charges.reservation_id as rid
  64. from charges
  65. where charges.state = 'normal' and charges.kind IN ('rent' , 'oneway', 'd2d', 'mileage')
  66. group by charges.reservation_id
  67. ) as c ON A.rid = c.rid
  68.  
  69. left join coupons on coupons.reservation_id = A.rid
  70. left join member_appendixes ma on A.memberid = ma.member_id
  71.  
  72. group by A.memberid,B.carid,A.rid
  73.  
  74. order by c.rev desc
Advertisement
Add Comment
Please, Sign In to add comment