import dotenv from 'dotenv'; dotenv.config(); import mysql from 'mysql2/promise'; async function main() { const pool = mysql.createPool({ host: process.env.DB_HOST, port: Number(process.env.DB_PORT), user: process.env.DB_USER, password: process.env.DB_PASSWORD, database: process.env.DB_NAME, }); const [statusRows] = await pool.query(` SELECT dic_status.dic_name AS status_label, truck.truck_rent_status AS status_code, COUNT(*) AS cnt FROM tab_truck truck LEFT JOIN tab_dic dic_status ON dic_status.parent_code = 'dic_truck_rent_status' AND dic_status.dic_code = truck.truck_rent_status AND dic_status.is_deleted = 0 WHERE truck.is_deleted = 0 AND truck.is_operation = 1 GROUP BY dic_status.dic_name, truck.truck_rent_status `); console.log('=== Rental Status ==='); console.log(JSON.stringify(statusRows, null, 2)); const [ownerRows] = await pool.query(` SELECT dic.dic_name AS label, truck.ascription_status AS code, COUNT(*) AS cnt FROM tab_truck truck LEFT JOIN tab_dic dic ON dic.parent_code = 'dic_truck_ascription_status' AND dic.dic_code = truck.ascription_status AND dic.is_deleted = 0 WHERE truck.is_deleted = 0 AND truck.is_operation = 1 GROUP BY dic.dic_name, truck.ascription_status `); console.log('=== Ownership Status ==='); console.log(JSON.stringify(ownerRows, null, 2)); const [regionRows] = await pool.query(` SELECT info.province, info.city, COUNT(*) AS cnt FROM tab_truck truck LEFT JOIN tab_truck_remote_sync_realtime_info info ON info.id = truck.id WHERE truck.is_deleted = 0 AND truck.is_operation = 1 GROUP BY info.province, info.city ORDER BY cnt DESC LIMIT 20 `); console.log('=== Top Regions ==='); console.log(JSON.stringify(regionRows, null, 2)); const [modelRows] = await pool.query(` SELECT dic_type.dic_name AS model_label, dic_brand.dic_name AS brand_label, COUNT(*) AS cnt FROM tab_truck truck LEFT JOIN tab_dic dic_type ON dic_type.parent_code = 'dic_truck_type' AND dic_type.dic_code = truck.model AND dic_type.is_deleted = 0 LEFT JOIN tab_dic dic_brand ON dic_brand.parent_code = 'dic_vehicle_brand' AND dic_brand.dic_code = truck.brand AND dic_brand.is_deleted = 0 WHERE truck.is_deleted = 0 AND truck.is_operation = 1 GROUP BY dic_type.dic_name, dic_brand.dic_name ORDER BY cnt DESC `); console.log('=== Models ==='); console.log(JSON.stringify(modelRows, null, 2)); await pool.end(); } main();