Есть 2 таблицы с данными, в одном отчеты с черного ящика в другои отчеты водителеи , нужны только те водители ,которые занизили скорость передвижения больше чем 1 раз за 2000 миль.
запрос :
| Код | select a.drivername,count(b.vehicle_id)as hardbrakes , sum(convert(decimal(9,1),a.tripendodometermiles)-convert(decimal(9,1),a.tripstartodometermiles))as miles, sum(convert(decimal(9,1),a.tripendodometermiles)-convert(decimal(9,1),a.tripstartodometermiles))/2000 as miles2000each from DriverTripReportData a LEFT JOIN TOLVehicleReport b ON a.VehicleName = b.vehicle_id where convert(datetime,replace(replace(date_and_time,'a','AM'),'p','PM')) between convert(datetime,substring(tripbegindatetime,1,19),126) and convert(datetime,substring(tripenddatetime,1,19),126) and convert(datetime,replace(replace(date_and_time,'a','AM'),'p','PM')) between '05/01/2008' and '05/31/2008 23:59:59' and b.reason = 'Rapid Deceleration' and a.xactivity_id='TripBegin' group by drivername having ( count(b.vehicle_id))- (sum(convert(decimal(9,1),a.tripendodometermiles)-convert(decimal(9,1),a.tripstartodometermiles))/2000 )>1
|
выдает почти то что надо , но в некоторых строчках неправильно выводит сумму проиденных миль то есть
| Код | sum(convert(decimal(9,1),a.tripendodometermiles)-convert(decimal(9,1),a.tripstartodometermiles))as miles
|
указанная цифра меньше нужнои ,словно пропускает одну строку при подсчете
не подскажите в чем может быть дело или как переделать этот запрос в хранимую процедуру ? |