Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- select A.return_date as return_date, A.rid as rid, A.dur as dur, A.ad_sdur as ad_sdur, A.distance as distance, A.car_name as car_name, A.age as age,
- IFNULL(Round(B.avg_repair_cost_per_accident,0),0) as avg_repair_cost_per_accident,ifnull(B.number_of_accidents,0) as number_of_accidents
- from
- (select
- distinct r.id as rid, r.member_id as mid,
- round(sum(timestampdiff(minute, r.start_at, r.end_at)/60),2) as dur,
- round(sum(floor(timestampdiff(minute, r.start_at, r.end_at)/60/24)*12+if(mod(timestampdiff(hour, r.start_at, r.end_at),24)>=12,12,mod(timestampdiff(minute, r.start_at, r.end_at)/60,24))),2) as ad_sdur,
- IFNULL(sum(ra.mileage),0) as distance,cc.car_name as car_name,
- (YEAR(r.start_at) - YEAR(m.birthday)) as age,
- Date(r.return_at + interval '8' hour) as return_Date
- from reservations r left join members m on r.member_id = m.id
- left join reservation_appendixes ra on ra.reservation_id = r.id
- LEFT JOIN cars c ON c.id=r.car_id
- LEFT JOIN car_classes cc ON cc.id=c.car_class_id
- where r.state in ('completed')
- and r.return_at + interval 8 hour >= date_sub('{{ end }}', interval 6 month)
- and r.return_at + interval 8 hour <= '{{ end }}'
- and m.imaginary in ('sofam', 'normal')
- and r.member_id not in ('125', '127')
- group by rid) A
- left join
- (SELECT r.id as rid,
- cc.car_name "car_name",
- cc.maker "manufacturer",
- avg(ca.quotation_amount) "avg_repair_cost_per_accident",
- sum(ca.quotation_amount) "total_repair_cost_per_car_type",
- count(c.registration_no) "number_of_accidents",
- crs.name,
- year(ca.accident_at),
- year(ca.created_at) "GOS record created"
- FROM car_accidents ca
- LEFT JOIN reservations r ON r.id=ca.reservation_id
- LEFT JOIN cars c ON c.id=ca.car_id
- LEFT JOIN car_classes cc ON cc.id=c.car_class_id
- LEFT JOIN car_repair_shops crs ON crs.id=ca.car_repair_shop_id
- WHERE ca.state <> "duplicated"
- AND ca.state <> "deleted" and ((ca.insurance_type<>"thirdParty" and ca.is_insurance=1) or ca.is_insurance=0)
- AND greatest(date(r.occupy_start_at+interval 8 hour),date(ca.accident_at+interval 8 hour))>= date_sub('{{ end }}', interval 6 month)
- AND greatest(date(r.occupy_start_at+interval 8 hour), date(ca.accident_at+interval 8 hour))<= '{{ end }}'
- GROUP BY r.id
- ORDER BY avg(ca.quotation_amount) DESC)B
- on A.rid = B.rid
- group by 2
Advertisement
Add Comment
Please, Sign In to add comment