SQL脚本记录

with d as(
       select vd.vehicle_id, dd.emp_code, driver_name, dic.dic_name,e.pre_maint_miles
         from tm_vms_driver dd
         join ts_vms_dictionary dic on dd.emp_type = dic.dic_id
         join tm_vms_vehicle_driver vd on vd.driver_id = dd.driver_id
         join (select * from (select a.pre_maint_miles,
                        a.vehicle_id,
                        a.vehicle_code,
                        row_number() over(partition by vehicle_code order by pre_maint_miles desc) rn
                   from TS_VMS_MAINT_TO_ECP a) b
                  where b.rn = 1) e on vd.vehicle_id = e.vehicle_id
        where dd.manager_flg = 1
          and dd.valid = 1
          and dic.dic_type = 101
          order by vd.created_tm desc
      ) select d.pre_maint_miles,v.vehicle_id,
             v.vehicle_code,
             v.brand_model || v.wheelbase brand_model,
             v.used_kind,
             v.use_kind_name,
             v.buy_dt,
             v.current_miles,
             v.ORIGINAL_VALUE,
             nvl(v.total_miles,0)+(nvl(v.current_miles,0)-nvl(v.base_miles,0)) total_miles,
             nvl(d.emp_code,'') emp_code,
             nvl(d.driver_name,'') driver_name,
             nvl(d.dic_name,'') emp_duty_name
        from tm_vms_vehicle v
        left join d on d.vehicle_id=v.vehicle_id
       where v.usage = 1
         and v.used_kind in (8, 9, 10, 11)
         and v.vehicle_state in (1,3)
          and v.dept_id in(
             select t.dept_id from tm_department t 
                    where t.delete_flg=0
             connect by prior t.dept_code = t.parent_dept_code
             start with dept_id=49)

       order by used_kind;


这个脚本通过关联5个表,查出了存在于tm_vms_vehicle 表中的车辆数据,并且取每辆车在TS_VMS_MAINT_TO_ECP 表中的里程字段[pre_maint_miles]为最大值的那条记录。

你可能感兴趣的:(SQL脚本记录)