feat(货运): 同名企业口径SQL新增企业明细导出查询(546家/含改名标记)+导出说明

- 查询7:按unified_credit_code匹配,输出14列明细,覆盖1家改名企业
- 查询8:546家口径合计,便于与明细求和对账
- 脚本内附三种导出方式(命令行tsv/Navicat xlsx/INTO OUTFILE),命令行方式已实测
- 同步更新功能测试报告(T13~T17)与工作日结
3个文件已修改
131 ■■■■■ 已修改文件
docs/功能测试报告/功能测试报告_同名企业1-8月累计货运量与周转量SQL_2026-09-19.md 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/工作日结/工作日结_2026-09-19.md 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/生成汇总大表/同名企业_1-8月累计对比_2026-09-19.sql 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/¹¦ÄܲâÊÔ±¨¸æ/¹¦ÄܲâÊÔ±¨¸æ_ͬÃûÆóÒµ1-8ÔÂÀۼƻõÔËÁ¿ÓëÖÜתÁ¿SQL_2026-09-19.md
@@ -59,9 +59,31 @@
   åˆ†å¸‚州查询用 `MAX(CASE WHEN report_period >= '2026-01' ...)` å– 2026 å¹´çš„地区代码,
   ä¼ä¸šè·¨å¸‚迁移时按 2026 å¹´å½’属统计,实测未发现影响(同名企业两地并存的情况无)。
## äº”、结论
## äº”、补充:企业明细导出(2026-09-19 è¿½åŠ ï¼‰
6 æ¡æŸ¥è¯¢æ•´è„šæœ¬æ‰§è¡Œé€šè¿‡ï¼Œ12 æ¡ç”¨ä¾‹ï¼ˆ8 æ­£å‘ / 2 è´Ÿå‘ / 2 è¾¹ç•Œï¼‰å…¨éƒ¨é€šè¿‡ã€‚
用户要求把企业明细也导出来,脚本追加两条查询:
- **查询 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 æœˆç´¯è®¡ç»“果:**
docs/¹¤×÷ÈÕ½á/¹¤×÷ÈÕ½á_2026-09-19.md
@@ -54,6 +54,14 @@
同名口径的 2026 å¹´ç´¯è®¡æ•°ä¸Žç™½å¤©äº¤ä»˜ä»¶å…¨çœè¡Œï¼ˆ27752.6820 ä¸‡å¨ / 4389882.0468 ä¸‡å¨å…¬é‡Œï¼‰å®Œå…¨ä¸€è‡´ï¼Œä¸¤æ¡é“¾è·¯äº’证通过。
全量与同名口径的差额也已算清:2026 å¹´æ–°è¿› 91 å®¶ï¼ˆ+3647.14 ä¸‡å¨ / +537279.73 ä¸‡å¨å…¬é‡Œï¼‰ï¼Œ
2025 å¹´é€€å‡º 119 å®¶ï¼ˆâˆ’3841.31 ä¸‡å¨ / âˆ’467178.48 ä¸‡å¨å…¬é‡Œï¼‰ã€‚
补充(当日追加):用户接着要「企业明细也导出来」,脚本追加 **查询 7 ä¼ä¸šæ˜Žç»†å¯¼å‡º** ä¸Ž **查询 8 åˆè®¡å¯¹æ€»æ•°**。
- æŸ¥è¯¢ 7 çš„匹配键改用 `unified_credit_code`,覆盖 **546 å®¶**(比名称口径多 1 å®¶æ”¹åä¼ä¸šï¼š
  `91420112558443820B`,2025-01~09「湖北三峡富烨绿电供应链有限公司」→ 2025-10 èµ·ã€Œæ¹–北长峡富烨绿电供应链有限公司」),
  è¾“出 14 åˆ—(信用代码、两年名称、是否改名、市州、两年货运量/周转量及增减同比),按 2026 å¹´è´§è¿é‡é™åºã€‚
- 546 å®¶å£å¾„合计:2025 å¹´ 1-8 æœˆ 30162.99 ä¸‡å¨ / 4637038.58 ä¸‡å¨å…¬é‡Œï¼›2026 å¹´ 27764.88 ä¸‡å¨ / 4392984.81 ä¸‡å¨å…¬é‡Œã€‚
- è„šæœ¬å†…é™„ä¸‰ç§å¯¼å‡ºæ–¹å¼ï¼ˆå‘½ä»¤è¡Œ tsv / Navicat å¯¼ xlsx / INTO OUTFILE),命令行方式已实测导出 546 è¡Œã€ä¸­æ–‡æ­£å¸¸ã€‚
- å¾…用户确认:对外报送用 545 å®¶ï¼ˆåç§°äº¤é›†ï¼‰è¿˜æ˜¯ 546 å®¶ï¼ˆä»£ç äº¤é›†ï¼‰ï¼Œç¡®è®¤åŽå†å®šç¨¿ä»¶ã€‚
## äºŒã€æµ‹è¯•结果摘要
见《功能测试报告_持续在规企业545家分市州累计运距同比_2026-09-19.md》:11 æ¡ç”¨ä¾‹ï¼ˆ7 æ­£å‘ / 3 è¾¹ç•Œ / 1 è´Ÿå‘)全部通过。
@@ -62,7 +70,7 @@
- å…¨çœè¡Œ = Î£17 å¸‚å·žï¼›17 ä¸ªå¸‚州与用户表格逐行一致;
- ä»™æ¡ƒå¸‚无可比基数、累计货运量为 0 çš„企业均已防除零处理。
- åŒåä¼ä¸šå£å¾„ SQL è„šæœ¬å·²æ•´è„šæœ¬æ‰§è¡ŒéªŒè¯ï¼š12 æ¡ç”¨ä¾‹ï¼ˆ8 æ­£å‘ / 2 è´Ÿå‘ / 2 è¾¹ç•Œï¼‰å…¨éƒ¨é€šè¿‡ï¼›
- åŒåä¼ä¸šå£å¾„ SQL è„šæœ¬å·²æ•´è„šæœ¬æ‰§è¡ŒéªŒè¯ï¼ˆå«è¿½åŠ çš„æ˜Žç»†å¯¼å‡ºæŸ¥è¯¢ï¼‰ï¼š17 æ¡ç”¨ä¾‹ï¼ˆ11 æ­£å‘ / 2 è´Ÿå‘ / 4 è¾¹ç•Œï¼‰å…¨éƒ¨é€šè¿‡ï¼›
  æ˜Žç»† 545 è¡Œæ±‚å’Œ = æ±‡æ€»è¡Œï¼ˆå·®å¼‚ 0),差异企业闭合校验通过。
## ä¸‰ã€é—留问题与待办
docs/Éú³É»ã×Ü´ó±í/ͬÃûÆóÒµ_1-8ÔÂÀۼƶԱÈ_2026-09-19.sql
@@ -199,3 +199,98 @@
WHERE e.report_period BETWEEN '2025-01' AND '2026-08'
GROUP BY e.enterprise_name
HAVING è®°å½•æ•°2025 <> 8 OR è®°å½•æ•°2026 <> 8;
-- =====================================================================
-- æŸ¥è¯¢ 7:企业明细导出(推荐用这版,546 å®¶ï¼‰
--   ä¸ŽæŸ¥è¯¢ 2 çš„区别:匹配键用「统一社会信用代码」而不是企业名称,
--   å¤šè¦†ç›– 1 å®¶æ”¹åä¼ä¸šï¼ˆ91420112558443820B:
--   2025-01~2025-09 å«ã€Œæ¹–北三峡富烨绿电供应链有限公司」,
--   2025-10 èµ·å«ã€Œæ¹–北长峡富烨绿电供应链有限公司」),
--   æŸ¥è¯¢ 2 æŒ‰åç§°åŒ¹é…ä¼šæŠŠè¿™å®¶ä¸¤å¹´éƒ½æ¼æŽ‰ï¼Œä¸”同时计入两年「独有企业」名单。
--   è¾“出列已按导出习惯排好,可直接粘进 Excel;按 2026 å¹´è´§è¿é‡é™åºã€‚
--   æç¤ºï¼šæ˜Žç»†è¡Œæ˜¯ã€Œå…ˆå››èˆäº”入再求和」,与查询 8 çš„合计有 0.01~0.02 çš„尾差,属正常。
-- =====================================================================
SELECT d.credit_code                                                     AS ç»Ÿä¸€ç¤¾ä¼šä¿¡ç”¨ä»£ç ,
       d.name_2026                                                       AS ä¼ä¸šåç§°,
       d.name_2025                                                       AS åç§°2025,
       IF(d.name_2025 <> d.name_2026, '是', '')                          AS æ˜¯å¦æ”¹å,
       CASE
         WHEN d.region_code LIKE '4201%' THEN '武汉' WHEN d.region_code LIKE '4202%' THEN '黄石'
         WHEN d.region_code LIKE '4203%' THEN '十堰' WHEN d.region_code LIKE '4205%' THEN '宜昌'
         WHEN d.region_code LIKE '4206%' THEN '襄阳' WHEN d.region_code LIKE '4207%' THEN '鄂州'
         WHEN d.region_code LIKE '4208%' THEN '荆门' WHEN d.region_code LIKE '4209%' THEN '孝感'
         WHEN d.region_code LIKE '4210%' THEN '荆州' WHEN d.region_code LIKE '4211%' THEN '黄冈'
         WHEN d.region_code LIKE '4212%' THEN '咸宁' WHEN d.region_code LIKE '4213%' THEN '随州'
         WHEN d.region_code LIKE '4228%' THEN '恩施' WHEN d.region_code LIKE '429004%' THEN '仙桃'
         WHEN d.region_code LIKE '429005%' THEN '潜江' WHEN d.region_code LIKE '429006%' THEN '天门'
         WHEN d.region_code LIKE '429021%' THEN '林区' ELSE '其他' END     AS å¸‚å·ž,
       d.region_code                                                     AS åœ°åŒºä»£ç ,
       ROUND(d.freight_2025  / 10000, 2)                                 AS è´§è¿é‡2025_万吨,
       ROUND(d.freight_2026  / 10000, 2)                                 AS è´§è¿é‡2026_万吨,
       ROUND((d.freight_2026 - d.freight_2025) / 10000, 2)               AS è´§è¿é‡å¢žå‡_万吨,
       ROUND((d.freight_2026 / NULLIF(d.freight_2025, 0) - 1) * 100, 2)  AS è´§è¿é‡åŒæ¯”_百分比,
       ROUND(d.turnover_2025 / 10000, 2)                                 AS å‘¨è½¬é‡2025_万吨公里,
       ROUND(d.turnover_2026 / 10000, 2)                                 AS å‘¨è½¬é‡2026_万吨公里,
       ROUND((d.turnover_2026 - d.turnover_2025) / 10000, 2)             AS å‘¨è½¬é‡å¢žå‡_万吨公里,
       ROUND((d.turnover_2026 / NULLIF(d.turnover_2025, 0) - 1) * 100, 2) AS å‘¨è½¬é‡åŒæ¯”_百分比
FROM (
  SELECT e.unified_credit_code AS credit_code,
         -- 2026 å¹´ç”¨çš„名字(改名后取新名)、2025 å¹´ç”¨çš„名字,用于标记改名
         MAX(CASE WHEN e.report_period >= '2026-01' THEN e.enterprise_name END) AS name_2026,
         MAX(CASE WHEN e.report_period <= '2025-08' THEN e.enterprise_name END) AS name_2025,
         MAX(CASE WHEN e.report_period >= '2026-01' THEN e.region_code END)     AS region_code,
         SUM(CASE WHEN e.report_period <= '2025-08' THEN e.freight_total  ELSE 0 END) AS freight_2025,
         SUM(CASE WHEN e.report_period >= '2026-01' THEN e.freight_total  ELSE 0 END) AS freight_2026,
         SUM(CASE WHEN e.report_period <= '2025-08' THEN e.turnover_total ELSE 0 END) AS turnover_2025,
         SUM(CASE WHEN e.report_period >= '2026-01' THEN e.turnover_total ELSE 0 END) AS turnover_2026
  FROM h2032_enterprise_monthly e
  JOIN (SELECT DISTINCT unified_credit_code c FROM h2032_enterprise_monthly
         WHERE report_period BETWEEN '2025-01' AND '2025-08') a ON a.c = e.unified_credit_code
  JOIN (SELECT DISTINCT unified_credit_code c FROM h2032_enterprise_monthly
         WHERE report_period BETWEEN '2026-01' AND '2026-08') b ON b.c = e.unified_credit_code
  WHERE e.report_period BETWEEN '2025-01' AND '2026-08'
  GROUP BY e.unified_credit_code
) d
ORDER BY è´§è¿é‡2026_万吨 DESC;
-- =====================================================================
-- æŸ¥è¯¢ 8:查询 7 çš„合计行(导出明细后用来对总数,546 å®¶å£å¾„)
--   2025 å¹´ 1-8 æœˆï¼šè´§è¿é‡ 30162.99 ä¸‡å¨ã€å‘¨è½¬é‡ 4637038.58 ä¸‡å¨å…¬é‡Œ
--   2026 å¹´ 1-8 æœˆï¼šè´§è¿é‡ 27764.88 ä¸‡å¨ã€å‘¨è½¬é‡ 4392984.81 ä¸‡å¨å…¬é‡Œ
-- =====================================================================
SELECT COUNT(DISTINCT e.unified_credit_code)                              AS ä¼ä¸šæ•°,
       ROUND(SUM(CASE WHEN e.report_period <= '2025-08' THEN e.freight_total  ELSE 0 END) / 10000, 2) AS è´§è¿é‡2025_万吨,
       ROUND(SUM(CASE WHEN e.report_period >= '2026-01' THEN e.freight_total  ELSE 0 END) / 10000, 2) AS è´§è¿é‡2026_万吨,
       ROUND(SUM(CASE WHEN e.report_period <= '2025-08' THEN e.turnover_total ELSE 0 END) / 10000, 2) AS å‘¨è½¬é‡2025_万吨公里,
       ROUND(SUM(CASE WHEN e.report_period >= '2026-01' THEN e.turnover_total ELSE 0 END) / 10000, 2) AS å‘¨è½¬é‡2026_万吨公里
FROM h2032_enterprise_monthly e
JOIN (SELECT DISTINCT unified_credit_code c FROM h2032_enterprise_monthly
       WHERE report_period BETWEEN '2025-01' AND '2025-08') a ON a.c = e.unified_credit_code
JOIN (SELECT DISTINCT unified_credit_code c FROM h2032_enterprise_monthly
       WHERE report_period BETWEEN '2026-01' AND '2026-08') b ON b.c = e.unified_credit_code
WHERE e.report_period BETWEEN '2025-01' AND '2026-08';
-- =====================================================================
-- ä¸‰ã€æ€Žä¹ˆæŠŠæŸ¥è¯¢ 7 çš„结果导出来
-- ---------------------------------------------------------------------
-- æ–¹å¼ä¸€ï¼šå‘½ä»¤è¡Œå¯¼å‡ºï¼ˆè¾“出制表符分隔的 .tsv,Excel åŒå‡»å³å¯åˆ†åˆ—,最省事)
--   mysql --host=127.0.0.1 --port=3308 --user=root --password=123456 ^
--         --database=traffic_audit --default-character-set=utf8mb4 --batch --raw ^
--         --execute="这里整段粘贴查询 7 çš„ SQL(含最外层分号之前的全部内容)" ^
--         > D:\临时\企业明细_546å®¶_2025-2026å¹´1-8月.tsv
--   æ³¨æ„ 1:一定要带 --default-character-set=utf8mb4,否则中文列名/企业名会变乱码。
--   æ³¨æ„ 2:导出的 .tsv æ˜¯ã€ŒUTF-8 æ—  BOM」,部分人的 Excel ç›´æŽ¥åŒå‡»ä¼šæ˜¾ç¤ºä¹±ç ï¼Œ
--          è¯·æ”¹ç”¨ Excel çš„「数据 â†’ ä»Žæ–‡æœ¬/CSV」导入并选 UTF-8 ç¼–码,
--          æˆ–直接用下面的方式二导出成 xlsx(最不容易出问题)。
--
-- æ–¹å¼äºŒï¼šæŸ¥è¯¢å·¥å…·å¯¼å‡ºï¼ˆæŽ¨èç»™ä¸ç†Ÿå‘½ä»¤è¡Œçš„场景)
--   åœ¨ Navicat / MySQL Workbench / DBeaver é‡Œç›´æŽ¥æ‰§è¡ŒæŸ¥è¯¢ 7,
--   å³é”®ç»“果网格 â†’「导出结果」→ é€‰ xlsx æˆ– csv å³å¯ã€‚
--
-- æ–¹å¼ä¸‰ï¼šMySQL æœåŠ¡ç«¯ç›´æŽ¥å†™æ–‡ä»¶ï¼ˆä¸€èˆ¬ä¸ç”¨ï¼‰
--   éœ€è¦æœåŠ¡ç«¯ secure_file_priv å…è®¸ç›®æ ‡ç›®å½•,且路径是「服务器上」的路径:
--   SELECT ... INTO OUTFILE 'D:/tmp/freight_detail.csv'
--     FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n';
--   å…ˆæŸ¥ secure_file_priv:SHOW VARIABLES LIKE 'secure_file_priv';