Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- set @startDate = "2019-01-01";
- select
- members.id as mid,
- MIN(reservations.id) as first_res,
- (YEAR(current_date()) - YEAR(members.birthday)) as age,
- COUNT(reservations.id) as srid,
- round((timestampdiff(minute, convert_tz(reservations.start_at, '+00:00', '+8:00'), convert_tz(reservations.end_at, '+00:00', '+8:00'))/60),2) as sdur,
- zones.name as zone_name,
- cc.car_name as carname,
- cars.id,
- 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 reservations
- left join members on reservations.member_id = members.id
- left join coupons on coupons.reservation_id = reservations.id
- left join zones on reservations.start_zone_id = zones.id
- 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 = reservations.id
- 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 reservations.id = c.rid
- left join cars on cars.id = reservations.car_id
- left join car_classes cc on cc.id = cars.car_class_id
- where
- reservations.state = 'completed'
- and members.imaginary in ('normal', 'sofam')
- and DATE(CONVERT_TZ(members.created_at,'+00:00','+8:00')) >= @startDate
- group by members.id
Advertisement
Add Comment
Please, Sign In to add comment