# 功能测试报告_同名企业1-8月累计货运量与周转量SQL_2026-09-19 ## 一、功能说明 2025 年 1-8 月与 2026 年 1-8 月报送的企业数量不同(664 家 vs 636 家), 直接相减的差额里混着「企业名单变了」的影响。本功能按**同名企业口径** (两年 1-8 月都报送过的企业名称交集,共 **545 家**)分别汇总两年 1-8 月累计的 **货运量**与**货物周转量**,保证两年企业范围完全一致,可直接用于同比。 - 交付脚本:`docs/生成汇总大表/同名企业_1-8月累计对比_2026-09-19.sql`(含 6 条查询) - 数据源表:`traffic_audit.h2032_enterprise_monthly`(交企统H203-2表,企业级月报) - 关键字段:`freight_total` 货运量(吨)、`turnover_total` 货物周转量(吨公里)、 `report_period` 报表期('YYYY-MM')、`enterprise_name` 企业名称 - 单位换算:表内为「吨 / 吨公里」,输出统一 ÷10000 → 「万吨 / 万吨公里」 - 期间取法:1-8 月 = `report_period BETWEEN 'YYYY-01' AND 'YYYY-08'` - 脚本内容:查询 1 汇总行 / 查询 2 逐企业对照 / 查询 3 口径对照 / 查询 4 差异企业名单 / 查询 5 分市州汇总 / 查询 6 数据体检 ## 二、测试环境 - 数据库:MySQL 8.0.29,`127.0.0.1:3308`,库 `traffic_audit` - 客户端:mysql 5.7.41,参数 `--default-character-set=utf8mb4` - 执行方式:整脚本一次性执行 `mysql ... < 同名企业_1-8月累计对比_2026-09-19.sql` - 数据规模:`report_period` 共 20 个报表期(2025-01 ~ 2026-08),合计 13056 行; 其中 1-8 月口径 10400 行(2025 年 5312 行 / 2026 年 5088 行) - 测试日期:2026-09-19 ## 三、用例表 | 编号 | 类型 | 用例 | 输入 | 预期 | 实际 | 结论 | | --- | --- | --- | --- | --- | --- | --- | | T1 | 正向 | 同名企业口径汇总(查询 1) | 两年 1-8 月都报送过的企业 | 一行内出两年累计数 | 545 家;货运量 30153.14 / 27752.68 万吨,周转量 4635340.46 / 4389882.05 万吨公里 | 通过 | | T2 | 正向 | 逐企业对照明细(查询 2) | 同上 | 每家一行、两年并排 | 545 行,含两年值、增减额、同比 | 通过 | | T3 | 正向 | 明细求和 = 汇总行 | 查询 2 的 545 行按列求和 | 与查询 1 完全一致 | 30153.14 / 4635340.46 / 27752.68 / 4389882.05,差异 0 | 通过 | | T4 | 正向 | 口径对照(查询 3) | 全量 vs 同名 | 4 行口径可解释差额 | 全量 2025:664 家 33994.45 万吨 / 5102518.95 万吨公里;全量 2026:636 家 31399.82 万吨 / 4927161.77 万吨公里 | 通过 | | T5 | 正向 | 差异企业名单(查询 4) | 只在一年报送的企业 | 家数与差额相符 | 2025 独有 119 家、2026 独有 91 家;家数校验 664−545=119、636−545=91 | 通过 | | T6 | 正向 | 差异金额闭合 | 同名 + 独有 = 全量 | 金额闭合 | 货运量 30153.14+3841.31=33994.45(=全量 2025);周转量 4635340.46+467178.48=5102518.94(全量 5102518.95,差 0.01 为四舍五入) | 通过 | | T7 | 正向 | 分市州汇总(查询 5) | 同名企业按 region_code 归市州 | 市州合计 = 全省 | 16 个市州(仙桃 0 家同名企业),企业数合计 545,各列合计 = 查询 1 | 通过 | | T8 | 正向 | 入库抽查:逐月相加对齐 | 武汉钢铁集团物流有限公司 2025-01~08 共 8 条原始记录 | 逐月相加 = 明细行 | 货运量 7381512 吨 → 738.15 万吨;周转量 231191873 吨公里 → 23119.19 万吨公里,与查询 2 输出一致 | 通过 | | T9 | 负向 | 企业名不存在 | `enterprise_name='不存在的企业XYZ'` | 0 行、不报错 | 0 行 | 通过 | | T10 | 负向 | 年份写错 | 期间 `'2024-01' ~ '2024-08'` | 0 行 | 0 行 | 通过 | | T11 | 边界 | 同一企业同月重复记录 | `GROUP BY enterprise_name, report_period HAVING COUNT(*)>1` | 无重复(否则累计会被放大) | 0 条 | 通过 | | T12 | 边界 | 同名企业月份不全(查询 6) | 记录数 <> 8 的同名企业 | 无异常 | 空结果集,545 家两年各 8 个月齐全 | 通过 | ## 四、发现的问题与处置 1. **企业名称作为匹配键的固有风险(已提示,未改口径)** 同名口径按 `enterprise_name` 字符串相等匹配,若企业改名、或不同地市出现完全同名的企业, 会被判为「不同企业」或「同一企业」。实测两年数据中同一报表期内无重名记录(T11), 但跨年改名无法通过本脚本识别;如需更严谨可改用 `unified_credit_code`(统一社会信用代码)匹配。 2. **同名口径与全量口径的差额已可解释** 2026 年全量比同名口径多 3647.14 万吨、少 537279.73 万吨公里(新进 91 家企业), 2025 年全量比同名口径多 3841.31 万吨、467178.48 万吨公里(退出 119 家)。 对外说明同比时需注明采用的口径,避免与全量口径数字对不上。 3. **汇总行的同比小数位** 周转量同比精确值 −5.2954%,`ROUND(...,2)` 输出 −5.30(显示为 −5.3), 脚本表头注释已同步修正为 −5.30%,避免与展示值不一致。 4. **`region_code` 取 2026 年记录** 分市州查询用 `MAX(CASE WHEN report_period >= '2026-01' ...)` 取 2026 年的地区代码, 企业跨市迁移时按 2026 年归属统计,实测未发现影响(同名企业两地并存的情况无)。 ## 五、补充:企业明细导出(2026-09-19 追加) 用户要求把企业明细也导出来,脚本追加两条查询: - **查询 7 企业明细导出**:匹配键改用 `unified_credit_code`(统一社会信用代码),共 **546 家**, 比查询 2 多覆盖 1 家改名企业(`91420112558443820B`:2025-01~2025-09 叫 「湖北三峡富烨绿电供应链有限公司」,2025-10 起叫「湖北长峡富烨绿电供应链有限公司」)。 输出 14 列:统一社会信用代码、企业名称(2026 年名称)、名称2025、是否改名、市州、地区代码、 货运量两年值/增减/同比、周转量两年值/增减/同比,按 2026 年货运量降序。 - **查询 8 合计对总数**:546 家口径 2025 年 1-8 月货运量 30162.99 万吨 / 周转量 4637038.58 万吨公里; 2026 年 1-8 月货运量 27764.88 万吨 / 周转量 4392984.81 万吨公里。 - 脚本内附三种导出方式:命令行 `--batch --raw` 导 tsv、Navicat/Workbench 导 xlsx、`SELECT ... INTO OUTFILE`。 补充测试: | 编号 | 类型 | 用例 | 预期 | 实际 | 结论 | | --- | --- | --- | --- | --- | --- | | T13 | 正向 | 查询 7 明细行数 | 546 行 | 546 行,其中 1 行 `是否改名='是'` | 通过 | | T14 | 正向 | 查询 7 明细求和 = 查询 8 合计 | 一致(允许四舍五入尾差) | 明细逐行四舍五入后求和 30163.10 / 27764.86 / 4637038.56 / 4392984.78,与合计差 0.01~0.02,属正常尾差 | 通过 | | T15 | 正向 | 命令行导出(方式一) | 生成 UTF-8 的 tsv,含 546 行数据 | 89046 字节、546 行数据、中文列名与企业名正常 | 通过 | | T16 | 边界 | Excel 直接双击 tsv | 存在中文乱码风险 | 文件为 UTF-8 无 BOM,已在脚本内注明改用「数据 → 从文本/CSV」导入或直接导 xlsx | 通过 | | T17 | 边界 | 明细中同比除零 | 基期为 0 时不报错 | `NULLIF(...,0)` 保护,返回空值 | 通过 | ## 六、结论 8 条查询整脚本执行通过,17 条用例(11 正向 / 2 负向 / 4 边界)全部通过。 **同名企业口径(545 家)1-8 月累计结果:** | 指标 | 2025 年 1-8 月 | 2026 年 1-8 月 | 同比 | | --- | --- | --- | --- | | 货运量(万吨) | 30153.14 | 27752.68 | −7.96% | | 货物周转量(万吨公里) | 4635340.46 | 4389882.05 | −5.30% | 其中 2026 年累计数与 2026-09-19《持续在规企业 545 家累计运距》交付件的全省行 (27752.6820 万吨 / 4389882.0468 万吨公里)完全一致,两条链路口径互证通过。