-- ============================================
-- 修复 task_ratio 字段范围限制问题
-- 问题: decimal(5,4) 最大值为 9.9999,可能不足以存储异常数据
-- 解决: 扩大为 decimal(6,4),最大值 99.9999
-- ============================================

-- 1. 查看当前字段定义
DESC tb_vehicle_mileage_stats;

-- 2. 修改字段类型
ALTER TABLE tb_vehicle_mileage_stats 
MODIFY COLUMN task_ratio DECIMAL(6,4) DEFAULT 0.0000 COMMENT '任务里程占比(0-1,异常时可能超出)';

-- 3. 验证修改结果
DESC tb_vehicle_mileage_stats;

-- 4. 查询超出正常范围的数据(占比应在0-1之间)
SELECT stats_id, vehicle_id, vehicle_no, stat_date, 
       total_mileage, task_mileage, task_ratio
FROM tb_vehicle_mileage_stats
WHERE task_ratio > 1.0 OR task_ratio < 0.0
ORDER BY task_ratio DESC;

-- 5. 修复异常数据(可选)
-- UPDATE tb_vehicle_mileage_stats SET task_ratio = 1.0 WHERE task_ratio > 1.0;
-- UPDATE tb_vehicle_mileage_stats SET task_ratio = 0.0 WHERE task_ratio < 0.0;
