Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- select
- A.memberid,
- A.day,
- A.ridelength ,
- A.ridelengthinminutes,
- A.startingday,
- A.startingtime,
- B.regionname,
- B.carname,
- A.rid,
- A.carid,
- B.zoneid,
- A.state,
- IFNULL(ma.recommender,"") as referral,
- IFNULL(coupons.comment,"") as coupon,
- IFNULL(round(c.rev,2),0) as rev,
- round((IFNULL(c.rev,0) - IFNULL(p.coupon,0)),2) as net_rev,
- round(IFNULL((IFNULL(p.coupon,0)/c.rev),0),2) as coupon_rate
- from (select
- distinct m.id as memberid,
- date(r.occupy_start_at + interval '8' hour) as day,
- timestampdiff(minute,CONVERT_TZ(r.start_at, '+00:00', '+8:00'), CONVERT_TZ(r.end_at, '+00:00', '+8:00'))/60 as ridelength,
- TIMESTAMPDIFF(minute,CONVERT_TZ(r.start_at, '+00:00', '+8:00'), CONVERT_TZ(r.end_at, '+00:00', '+8:00')) as ridelengthinminutes,
- weekday(r.occupy_start_at + interval '8' hour) as startingday,
- hour(r.occupy_start_at + interval '8' hour) as startingtime,
- r.id as rid,
- r.state as state,
- r.car_id as carid
- from members m
- left outer join reservations r on m.id = r.member_id
- where CONVERT_TZ(r.start_at, '+00:00', '+8:00') >= '2019-1-1 00:00'
- and CONVERT_TZ(r.start_at, '+00:00', '+8:00') < '2019-9-1'
- and m.imaginary = 'normal'
- and m.state = 'normal'
- and r.state IN ('completed','inuse','reserved')
- group by m.id,r.id
- ) A
- left outer join
- (select
- c.id as carid,cc.car_name as carname,z.region as regionname,z.id as zoneid from cars c
- left outer join car_classes cc on cc.id = c.car_class_id
- left outer join zones z on z.id = c.zone_id
- left outer join car_zone_logs as cz on c.id = cz.car_id
- where cz.car_state = 'Normal'
- #and z.state = 'normal'
- group by c.id) B
- on A.carid = B.carid
- left join (
- select IFNULL(payments.amount,0) as coupon, payments.reservation_id as rid
- from payments
- where payments.state = 'normal' and payments.paid_type = 'coupon'
- ) as p on p.rid = A.rid
- left join (
- select sum(charges.amount) as rev, charges.reservation_id as rid
- from charges
- where charges.state = 'normal' and charges.kind IN ('rent' , 'oneway', 'd2d', 'mileage')
- group by charges.reservation_id
- ) as c ON A.rid = c.rid
- left join coupons on coupons.reservation_id = A.rid
- left join member_appendixes ma on A.memberid = ma.member_id
- group by A.memberid,B.carid,A.rid
- order by c.rev desc
Advertisement
Add Comment
Please, Sign In to add comment