Files
gps-frontend/test.sql
meusinfirmary b9891d2f81 Initial commit
2025-04-22 14:33:37 +07:00

57 lines
3.8 KiB
SQL
Executable File

SELECT
v.id as vid,v.device_id,v.name as vhc_name
,c.name as vhc_cat_name,t.name as vhc_type_name
,v.nopol1,v.nopol2,v.nopol3
,vd.fvhc_img
,v.is_track_holiday,v.track_sch_d,v.track_sch_h,vd.speed_limit,v.crt as vhc_crt
,client.id as client_group_id,client.c_name as client_group_name
,tr.ignition,tr.stts_engine,tr.stts_gps,tr.stts_gsm
,tr.pre_milleage,tr.sum_milleage,tr.vhc_milleage,v.sum_milleage AS vhc_sum_milleage_1
,(SELECT SUM(pre_milleage) FROM db_trucking.t_gps_tracks WHERE vhc_id = v.id LIMIT 1) as vhc_sum_milleage
,(SELECT crt_s FROM db_trucking.t_gps_tracks WHERE stts_engine = 1 AND vhc_id = v.id AND crt_s >= (
SELECT crt_s FROM db_trucking.t_gps_tracks WHERE stts_engine IN (3,2) AND vhc_id = v.id AND crt_s <= tr.crt_s ORDER BY id DESC LIMIT 1
) ORDER BY id ASC LIMIT 1) as lst_idle_at
,(SELECT crt_s FROM db_trucking.t_gps_tracks WHERE stts_engine = 3 AND vhc_id = v.id AND crt_s >= (
SELECT crt_s FROM db_trucking.t_gps_tracks WHERE stts_engine IN (1,2) AND vhc_id = v.id AND crt_s <= tr.crt_s ORDER BY id DESC LIMIT 1
) ORDER BY id ASC LIMIT 1) as lst_stop_at
,tr.id AS lst_master_id,tr.latitude AS lst_lat,tr.longitude AS lst_lng,tr.speed AS lst_speed,tr.orientation AS lst_orientation
,tr.crt AS lst_loc_crt,tr.crt_d AS lst_loc_crt_d,tr.crt_s AS lst_loc_crt_s
,tr_addr.master_id AS lst_addr_master_id,tr_addr.country_text AS lst_country_text,tr_addr.state_text AS lst_state_text,tr_addr.city_text AS lst_city_text
,tr_addr.district_text AS lst_district_text,tr_addr.village_text AS lst_village_text,tr_addr.postcode AS lst_postcode
,tr_addr.streets AS lst_streets,tr_addr.fulladdress AS lst_fulladdress
,(SELECT COUNT(id) FROM db_trucking.t_gps_tracks WHERE vhc_id = v.id AND action = 'heartbeat' AND crt BETWEEN 1668583927 AND 1668584527 LIMIT 1) as lst_heartbeat
,ord.id as ord_id,ord.code as ord_code,ord.status as ord_stts,ord.crt as ord_crt
,ord_pck.pck_name as ord_pck_name,ord_pck.pck_addr as ord_pck_addr,ord_drop.drop_name as ord_drop_name,ord_drop.drop_addr as ord_drop_addr
,(SELECT nmKotamadyaKel FROM db_trucking.t_region WHERE kodeKab = ord_pck.pck_ktid LIMIT 1) ord_pck_ktname
,(SELECT nmKotamadyaKel FROM db_trucking.t_region WHERE kodeKab = ord_drop.drop_ktid LIMIT 1) ord_drop_ktname
,ord_drv.drv_name as ord_drv_name,ord_drv.drv_phone_val as ord_drv_phone_val,ord_drv.drv_phone2_val as ord_drv_phone2_val,ord_drv.drv_addr as ord_drv_addr
,ord_c.c_name as ord_c_name,ord_c.c_pt_name as ord_c_pt_name
FROM db_trucking.t_vehicles AS v
INNER JOIN db_trucking.t_vehicles_detail AS vd ON v.id = vd.vid
INNER JOIN db_trucking.t_vehicles_types AS t ON v.type_id = t.id
INNER JOIN db_trucking.t_vehicles_cats AS c ON v.cat_id = c.id
LEFT JOIN db_trucking.t_users AS vendor ON v.vendor_id = vendor.id
LEFT JOIN db_trucking.t_clients AS client ON vendor.client_group_id = client.id
-- LEFT JOIN ( SELECT MAX(crt) max_crt, device_id FROM db_trucking.t_gps_tracks WHERE latitude is not null AND longitude is not null GROUP BY device_id ORDER BY crt DESC ) AS tr1 ON (v.device_id = tr1.device_id)
-- LEFT JOIN db_trucking.t_gps_tracks AS tr ON (tr.crt = tr1.max_crt)
-- LEFT JOIN db_trucking.t_gps_tracks AS tr ON tr.vhc_id = v.id
LEFT JOIN db_trucking.t_gps_tracks_rltm AS tr ON tr.vhc_id = v.id
LEFT JOIN db_trucking.t_gps_tracks_address AS tr_addr ON (tr.id = tr_addr.master_id)
LEFT JOIN db_trucking.t_orders_vehicles as ord_vhc ON v.id = ord_vhc.vhc_id
LEFT JOIN db_trucking.t_orders as ord ON ord_vhc.ord_id = ord.id
LEFT JOIN db_trucking.t_orders_pickups as ord_pck ON ord_vhc.ord_id = ord_pck.ord_id
LEFT JOIN db_trucking.t_orders_drops as ord_drop ON ord_vhc.ord_id = ord_drop.ord_id
LEFT JOIN db_trucking.t_orders_drivers as ord_drv ON ord_vhc.ord_id = ord_drv.ord_id
LEFT JOIN db_trucking.t_orders_clients as ord_c ON ord_vhc.ord_id = ord_c.ord_id
WHERE v.dlt is null
AND tr.latitude != 0 AND tr.latitude is not null
GROUP BY v.id
ORDER BY tr.crt_d DESC LIMIT 500;