docs/Éú³É»ã×Ü´ó±í/ͬÃûÆóÒµ_1-8ÔÂÀۼƶԱÈ_2026-09-19.sql
@@ -198,4 +198,99 @@
       WHERE report_period BETWEEN '2026-01' AND '2026-08') b ON b.enterprise_name = e.enterprise_name
WHERE e.report_period BETWEEN '2025-01' AND '2026-08'
GROUP BY e.enterprise_name
HAVING è®°å½•æ•°2025 <> 8 OR è®°å½•æ•°2026 <> 8;
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';