ahmedrahil786

Time, Rev, Coupon Rate - Rahil

May 14th, 2019
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.69 KB | None | 0 0
  1. select
  2.  
  3. A.rid,
  4. A.memberid,
  5. A.age,
  6. A.couponname,
  7. A.date,
  8. A.ridelength ,
  9. #A.ridelengthinminutes,
  10. A.startingday,
  11. A.couponactivationtime,
  12. A.reservationstarttime,
  13. A.startingtime,
  14. B.regionname,
  15. B.city,
  16. B.carname,
  17. #A.carid,
  18. #B.zoneid,
  19. A.state,
  20. #E.rev,
  21. IFNULL(F.rev2,0) as accidentrev,
  22. round((IFNULL(c.rev,0) - IFNULL(p.coupon,0)),2) as net_rev,
  23. round(IFNULL((IFNULL(p.coupon,0)/c.rev),0),2) as coupon_rate
  24.  
  25.  
  26. from (select
  27. distinct m.id as memberid,
  28. (YEAR(r.occupy_start_at) - YEAR(m.birthday)) as age,
  29. IFNULL(c.comment,0) as couponname,
  30. date(r.occupy_start_at + interval '8' hour) as date,
  31. timestampdiff(minute,CONVERT_TZ(r.start_at, '+00:00', '+8:00'), CONVERT_TZ(r.end_at, '+00:00', '+8:00'))/60 as ridelength,
  32. TIMESTAMPDIFF(minute,CONVERT_TZ(r.start_at, '+00:00', '+8:00'), CONVERT_TZ(r.end_at, '+00:00', '+8:00')) as ridelengthinminutes,
  33. weekday(r.occupy_start_at + interval '8' hour) as startingday,
  34. IFNULL(timestamp(c.activated_at + interval '8' hour),0) as couponactivationtime,
  35. timestamp(r.start_at + interval '8' hour) as reservationstarttime,
  36. timestamp(r.occupy_start_at + interval '8' hour) as startingtime,
  37. r.id as rid,
  38. r.state as state,
  39. r.car_id as carid
  40.  
  41. from members m
  42.  
  43. left outer join reservations r on m.id = r.member_id
  44. LEFT JOIN coupons c ON c.reservation_id = r.id
  45.  
  46. where CONVERT_TZ(r.start_at, '+00:00', '+8:00') >= '2019-1-1 00:00'
  47. and CONVERT_TZ(r.start_at, '+00:00', '+8:00') < '2019-7-1'
  48. and m.imaginary = 'normal'
  49. and m.state = 'normal'
  50. and r.state IN ('completed','inuse','reserved')
  51.  
  52. group by m.id,r.id
  53. ) A
  54. left outer join
  55.  
  56. (select
  57. c.id as carid,
  58. cc.car_name as carname,
  59. z.region as regionname,
  60. z.city as city,
  61. z.id as zoneid
  62. from cars c
  63.  
  64. left outer join car_classes cc on cc.id = c.car_class_id
  65. left outer join zones z on z.id = c.zone_id
  66. left outer join car_zone_logs as cz on c.id = cz.car_id
  67.  
  68. where cz.car_state = 'Normal'
  69. #and z.state = 'normal'
  70.  
  71. group by c.id) B
  72.  
  73. on A.carid = B.carid
  74.  
  75. left join (
  76. select sum(c.amount) as rev, c.reservation_id as rid
  77. from charges c
  78. where c.state = 'normal' and c.kind IN ('rent' , 'oneway', 'd2d', 'mileage')
  79. group by c.reservation_id
  80. ) as c ON A.rid = c.rid
  81.  
  82. left join (
  83. select IFNULL(payments.amount,0) as coupon, payments.reservation_id as rid
  84. from payments
  85. where payments.state = 'normal' and payments.paid_type = 'coupon'
  86. ) as p on p.rid = A.rid
  87.  
  88. left join (
  89. select sum(c.amount) as rev2, c.reservation_id as rid
  90. from charges c
  91. where c.state = 'normal' and c.kind IN ('penalty', 'accident')
  92. group by c.reservation_id
  93. ) as F ON A.rid = F.rid
  94.  
  95. group by A.memberid,B.carid,A.rid
  96.  
  97. order by net_rev desc
Advertisement
Add Comment
Please, Sign In to add comment