docs(货运): 新增同名企业(545家)1-8月累计货运量/周转量SQL查询脚本 + 09-19功能测试报告与工作日结
- 同名企业口径:两年1-8月企业名称交集545家,含汇总/明细/口径对照/差异名单/分市州/体检共6条查询
- 2025年1-8月:货运量30153.14万吨、周转量4635340.46万吨公里
- 2026年1-8月:货运量27752.68万吨、周转量4389882.05万吨公里
- 明细545行求和=汇总行,差异企业家数与金额闭合校验通过
| New file |
| | |
| | | # åè½æµè¯æ¥å_ååä¼ä¸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 å¹´å½å±ç»è®¡ï¼å®æµæªåç°å½±åï¼ååä¼ä¸ä¸¤å°å¹¶åçæ
嵿 ï¼ã |
| | | |
| | | ## äºãç»è®º |
| | | |
| | | 6 æ¡æ¥è¯¢æ´èæ¬æ§è¡éè¿ï¼12 æ¡ç¨ä¾ï¼8 æ£å / 2 è´å / 2 è¾¹çï¼å
¨é¨éè¿ã |
| | | |
| | | **ååä¼ä¸å£å¾ï¼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 ä¸å¨å
¬éï¼å®å
¨ä¸è´ï¼ä¸¤æ¡é¾è·¯å£å¾äºè¯éè¿ã |
| New file |
| | |
| | | # åè½æµè¯æ¥å_æç»å¨è§ä¼ä¸545å®¶åå¸å·ç´¯è®¡è¿è·åæ¯_2026-09-19 |
| | | |
| | | ## ä¸ãåè½è¯´æ |
| | | |
| | | - **éæ±**ï¼æç¨æ·ç¡®è®¤çãæç»å¨è§ä¼ä¸ = 2025 å¹´ 1-8 æä¸ 2026 å¹´ 1-8 æåè¿ç» 8 个æä¸æ¥ãå£å¾ï¼545 å®¶ï¼ï¼ |
| | | ç®åºåå¸å· 1-8 æç´¯è®¡å¹³åè¿è·åæ¯ï¼è¾åºå° `D:\æ¡é¢\è´§è¿ä¼ä¸åå¸å·æ
åµ\`ã |
| | | - **å£å¾**ï¼ |
| | | - æç»å¨è§ä¼ä¸ï¼545 å®¶ï¼ï¼ä¸¤å¹´åè¿ç» 8 个æä¸æ¥ H203-2 ææ¥çä¼ä¸ï¼ä¸¤å¹´é´æ°è¿ãéåºçä¼ä¸ä¸åä¸åæ¯ï¼ |
| | | - 累计平åè¿è·ï¼å
¬éï¼ï¼ 1-8 æç´¯è®¡è´§ç©å¨è½¬é ÷ 1-8 æç´¯è®¡è´§è¿éï¼å æå¹³åï¼ï¼ |
| | | - 忝 ï¼ 2026 å¹´ 1-8 æç´¯è®¡å¹³åè¿è· ÷ 2025 å¹´ 1-8 æç´¯è®¡å¹³åè¿è· â 1ï¼ |
| | | - å
¨çè¡ ï¼ 17 个å¸å·ç累计å¨è½¬éã累计货è¿éå嫿±ååç¸é¤ï¼éå¸å·åæ¯çç®æ¯å¹³åï¼ã |
| | | - **产åº**ï¼`D:\æ¡é¢\è´§è¿ä¼ä¸åå¸å·æ
åµ\æç»å¨è§ä¼ä¸545å®¶_åå¸å·1-8æç´¯è®¡è¿è·å忝_2026-09-19.xlsx` |
| | | ï¼é¡µç¾ï¼`å¸å·æ±æ»`ãå
¨ç + 17 å¸å·ãã`ä¼ä¸æç»(545å®¶)`ï¼ã |
| | | - **çæèæ¬**ï¼`docs\å·¥å
·\æç»å¨è§ä¼ä¸545家累计è¿è·çæ.py`ã |
| | | |
| | | ## äºãæµè¯ç¯å¢ |
| | | |
| | | | 项 | å
容 | |
| | | | --- | --- | |
| | | | æ°æ®åº | MySQL 127.0.0.1:3308 / traffic_auditï¼è¡¨ `h2032_enterprise_monthly` | |
| | | | è¿è¡ç¯å¢ | Python 3.14.2 + openpyxl 3.1.5 | |
| | | | 对ç
§ç© | ç¨æ·ä¾§ `D:\æ¡é¢\è´§è¿ä¼ä¸åå¸å·æ
åµ\è´§è¿ä¼ä¸åå¸å·æ
åµxlsx.xlsx`ï¼M/N 两åï¼ | |
| | | | è¾åºä½ç½® | å·¥ä½åº `outputs\` ä¸ `D:\æ¡é¢\è´§è¿ä¼ä¸åå¸å·æ
åµ\`ï¼ä¸¤ä»½ SHA256 ä¸è´ | |
| | | |
| | | ## ä¸ãç¨ä¾è¡¨ |
| | | |
| | | | ç¼å· | ç±»å | è¾å
¥ | 颿 | å®é
| ç»è®º | |
| | | | --- | --- | --- | --- | --- | --- | |
| | | | TC01 | æ£å | å
¨ç 545 å®¶ 2026 å¹´ 1-8 æç´¯è®¡å¨è½¬é ÷ 累计货è¿é | 158.1787 å
¬é | 4389882.0468 ÷ 27752.6820 = 158.1787 | éè¿ | |
| | | | TC02 | æ£å | å
¨ç 545 å®¶ 2025 å¹´ 1-8 æç´¯è®¡å¹³åè¿è· | ä¸ç¨æ·æä»¶ M4 ä¸è´ | 153.7266ï¼ä¸è´ | éè¿ | |
| | | | TC03 | æ£å | å
¨ç累计è¿è·åæ¯ | 158.1787 ÷ 153.7266 â 1 | +2.8961% | éè¿ | |
| | | | TC04 | æ£å | 17 个å¸å· 2025 年累计平åè¿è·ï¼å»å¹´åæåºæ°ï¼ | ä¸ç¨æ·æä»¶ M åéè¡ä¸è´ | 17/17 ä¸è´ | éè¿ | |
| | | | TC05 | æ£å | 17 个å¸å·ç´¯è®¡è¿è·åæ¯ | ä¸ç¨æ·æä»¶ N åéè¡ä¸è´ | 17/17 ä¸è´ï¼å
¨çè¡é¤å¤ï¼è§ TC10ï¼ | éè¿ | |
| | | | TC06 | æ£å | æç»é¡µ 545 è¡æ±å = æ±æ»é¡µå
¨çè¡ | å·®å¼ 0 | è´§è¿é 27752.6820ãå¨è½¬é 4389882.0468ï¼å·®å¼ 0 | éè¿ | |
| | | | TC07 | æ£å | å
¨çè¡ = Σ17 å¸å· | é项ç¸ç | ç¸çï¼å
æ±ç´¯è®¡å¨è½¬éã累计货è¿éåç¸é¤ï¼ | éè¿ | |
| | | | TC08 | è¾¹ç | 仿¡å¸ 2026 å¹´ 2 å®¶æç»å¨è§ä¼ä¸æ 2025 å¹´è¿ç»ä¸æ¥è®°å½ | 忝ç空并注æä¸éç¨ï¼ä¸é¤é¶æ¥é | ä¼ä¸æ° 0ãè¿è·ä¸åæ¯ç空ï¼å¤æ³¨ã忝ä¸éç¨ã | éè¿ | |
| | | | TC09 | è¾¹ç | 累计货è¿é为 0 çä¼ä¸ | 累计è¿è·ç空ï¼ä¸é¤é¶æ¥é | å·²éªè¯ï¼è¡¨å
æ æ¤ç±»ä¼ä¸ï¼ | éè¿ | |
| | | | TC10 | è´å | ç¨æ·æä»¶å
¨çè¡åæ¯ +7.8217% | åºä¸å¸å·è¡å为 1-8 æç´¯è®¡å£å¾ | 该å¼å®ä¸º 545 å®¶ **8 æå½æ**忝ï¼157.0007 ÷ 145.6114 â 1 = +7.8217%ï¼ï¼ç´¯è®¡å£å¾åºä¸º +2.8961%ï¼ä¸¤è
ç¸å·® 4.93 个ç¾åç¹ | éè¿ï¼é®é¢å·²å¨äº¤ä»ä»¶ä¸ä¿®æ£ï¼å¹¶å¨è¡¨å
注æå£å¾ï¼ | |
| | | | TC11 | è¾¹ç | æ¦æ±ç³å交éè¿è¾æéå
¬å¸ãæ¹åæ·é¾äº¤éè¿ä¸æéå
¬å¸ 2026 å¹´ 1 æå°åºç 为 420100ãå
¶å为 420107/420103 | å屿¦æ±å¸ï¼å½éä¸å½±å | å计å
¥æ¦æ± | éè¿ | |
| | | |
| | | ## åãåç°çé®é¢ä¸å¤ç½® |
| | | |
| | | 1. **ç¨æ·æä»¶å
¨çè¡åæ¯å£å¾æ··ç¨ï¼å·²ç»åºæ£ç¡®å¼ï¼**ï¼`è´§è¿ä¼ä¸åå¸å·æ
åµxlsx.xlsx` ç N4 åå
æ ¼å¡«çæ¯ 545 å®¶ **8 æå½æ**è¿è·åæ¯ |
| | | ï¼+7.8217%ï¼ï¼èå
¶ä¸ 17 个å¸å·è¡é½æ¯ **1-8 æç´¯è®¡**åæ¯ãæ¬è¡¨æç´¯è®¡å£å¾ç»åºå
¨ç **+2.8961%**ã |
| | | 2. **M åæªæ 年份**ï¼è¯¥åè¡¨æ ¼å¼å®ä¸º 2025 å¹´ï¼å»å¹´åæï¼ç´¯è®¡å¹³åè¿è·ï¼è¡¨å¤´ã1-8æå¹³åè¿è·ãæè¯¯è¯»ä¸ºä»å¹´ï¼ |
| | | æ¬è¡¨å° 2025ã2026 两年ååï¼æ¶é¤æ§ä¹ã |
| | | 3. **仿¡å¸æ 坿¯åºæ°**ï¼2026 å¹´æç»å¨è§ç 2 å®¶ä¼ä¸ 2025 å¹´æ è¿ç»ä¸æ¥è®°å½ï¼åæ¯ä¸éç¨ï¼ä¸æ¯ç¼ºæ°ï¼ï¼å·²å¨è¡¨å
注æã |
| | | |
| | | ## äºãç»è®º |
| | | |
| | | 11 æ¡ç¨ä¾ï¼7 æ£å / 3 è¾¹ç / 1 è´åï¼å
¨é¨éè¿ï¼17 个å¸å·ä¸ç¨æ·ç°æè¡¨æ ¼éè¡ä¸è´ï¼å
¨çè¡æ´æ£ä¸ºç´¯è®¡å£å¾ +2.90%ï¼ |
| | | æç» 545 è¡ä¸æ±æ»é项对账 0 å·®å¼ã交ä»ä»¶å·²çæå° `D:\æ¡é¢\è´§è¿ä¼ä¸åå¸å·æ
åµ\`ã |
| New file |
| | |
| | | # 工使¥ç»_2026-09-19 |
| | | |
| | | ## ä¸ãä»å¤©åäºä»ä¹ |
| | | |
| | | ### 1. æç»å¨è§ä¼ä¸ï¼545 å®¶ï¼åå¸å· 1-8 æç´¯è®¡è¿è·åæ¯ï¼æ¡é¢äº¤ä»ï¼ |
| | | |
| | | ç¨æ· 09-18 确认ãæç»å¨è§ä¼ä¸ã= **2025 å¹´ 1-8 æä¸ 2026 å¹´ 1-8 æåè¿ç» 8 个æä¸æ¥**ï¼545 å®¶ï¼ï¼ |
| | | è¦æ±æè¯¥å£å¾ä¸çåå¸å·ç´¯è®¡è¿è·åæ¯ç®åºæ¥å¹¶è¾åºå° `D:\æ¡é¢\è´§è¿ä¼ä¸åå¸å·æ
åµ\`ã |
| | | |
| | | - æ°æ®æºï¼`traffic_audit.h2032_enterprise_monthly`ï¼2025-01 ~ 2026-08ï¼ã |
| | | - å£å¾ï¼ç´¯è®¡å¹³åè¿è· = 1-8 æç´¯è®¡å¨è½¬é ÷ 累计货è¿éï¼åæ¯ = ä»å¹´ç´¯è®¡ ÷ å»å¹´åæç´¯è®¡ â 1ï¼å
¨ç = Σ17 å¸å·ã |
| | | - 产åºï¼`æç»å¨è§ä¼ä¸545å®¶_åå¸å·1-8æç´¯è®¡è¿è·å忝_2026-09-19.xlsx`ï¼`å¸å·æ±æ»` + `ä¼ä¸æç»(545å®¶)`ï¼ï¼ |
| | | èæ¬ `docs\å·¥å
·\æç»å¨è§ä¼ä¸545家累计è¿è·çæ.py`ã |
| | | |
| | | å
³é®ç»æï¼ |
| | | |
| | | | å¸å· | 2026å¹´1-8æç´¯è®¡è¿è·(å
¬é) | 2025å¹´åæ(å
¬é) | 忝 | å¸å· | 2026å¹´1-8æç´¯è®¡è¿è·(å
¬é) | 2025å¹´åæ(å
¬é) | 忝 | |
| | | | --- | --- | --- | --- | --- | --- | --- | --- | |
| | | | **å
¨ç** | **158.18** | **153.73** | **+2.90%** | é»å | 138.73 | 137.16 | +1.15% | |
| | | | æ¦æ± | 159.66 | 140.71 | +13.47% | å¸å® | 115.25 | 151.84 | â24.10% | |
| | | | é»ç³ | 112.67 | 93.75 | +20.18% | éå· | 187.28 | 226.03 | â17.14% | |
| | | | åå ° | 321.13 | 330.78 | â2.92% | æ©æ½å· | 141.78 | 128.56 | +10.28% | |
| | | | 宿 | 85.75 | 83.61 | +2.57% | 仿¡ | â | â | ä¸éç¨ | |
| | | | è¥é³ | 279.65 | 258.01 | +8.39% | æ½æ± | 407.97 | 367.73 | +10.94% | |
| | | | éå· | 42.38 | 103.49 | â59.05% | å¤©é¨ | 61.02 | 134.33 | â54.57% | |
| | | | èé¨ | 305.92 | 321.00 | â4.70% | ç¥åæ¶æåº | 57.68 | 113.39 | â49.13% | |
| | | | åæ | 183.86 | 198.51 | â7.38% | | | | | |
| | | | èå· | 321.44 | 337.36 | â4.72% | | | | | |
| | | |
| | | ### 2. æ ¸å¯¹ç¨æ·ä¾§ãè´§è¿ä¼ä¸åå¸å·æ
åµã表 |
| | | |
| | | - 该表 M/N 两åï¼æç»å¨è§ä¼ä¸ï¼ä¸æ¬æ¬¡ 545 å®¶å£å¾**éè¡ä¸è´**ï¼M = å»å¹´åæåºæ°ï¼N = ç´¯è®¡åæ¯ï¼ã |
| | | - åç°ä¸å¤å£å¾æ··ç¨ï¼**å
¨çè¡ N4 å¡«çæ¯ 8 æå½æåæ¯ +7.8217%**ï¼157.0007 ÷ 145.6114 â 1ï¼ï¼ |
| | | å
¶ä½ 17 è¡å为 1-8 æç´¯è®¡åæ¯ï¼ç´¯è®¡å£å¾åºä¸º **+2.90%**ï¼158.18 ÷ 153.73 â 1ï¼ï¼ç¸å·® 4.93 个ç¾åç¹ã |
| | | - 表头ã1-8æå¹³åè¿è·ãæªæ 年份ï¼å®é
为 2025 å¹´å¼ï¼å·²å¨æ¬æ¬¡äº¤ä»ä»¶ä¸åå两年æ¶é¤æ§ä¹ã |
| | | - 该表 O åã1-8æé«éè¿è·åæ¯ã䏿头é«éæ°æ®ï¼`è¿è·åææ¥å\è¿è·åææ°æ®æ±æ».xlsx`ï¼ç®å¾çå
¨ç â5.94% ä¸ä¸è´ |
| | | ï¼å¸å·å·®å¼æ´å¤§ï¼ï¼æ¥æºä¸æé´å¾
ç¨æ·ç¡®è®¤ï¼æç¨æ·è¦æ±æ¬è½®ä¸å¤çé«éåã |
| | | |
| | | ### 3. ååä¼ä¸å£å¾ 1-8 æç´¯è®¡è´§è¿é/å¨è½¬é SQL æ¥è¯¢èæ¬ï¼æ¬æ¬¡æ°å¢ï¼ |
| | | |
| | | ç¨æ·æé®ï¼25 å¹´ä¸ 26 å¹´ä¼ä¸æ°ä¸åï¼è¦ãä¼ä¸åç§°ç¸åãå°å嫿±æ» 1-8 æç´¯è®¡ç |
| | | è´§ç©å¨è½¬éåè´§è¿éï¼SQL æä¹åã |
| | | |
| | | - 交ä»èæ¬ï¼`docs\çææ±æ»å¤§è¡¨\ååä¼ä¸_1-8æç´¯è®¡å¯¹æ¯_2026-09-19.sql`ï¼6 æ¡æ¥è¯¢ï¼å
¨ä¸ææ³¨éï¼ã |
| | | - å£å¾ï¼ä¼ä¸åç§°å两年 1-8 æç交éï¼ä¸ç½å¤©ç¡®è®¤çãæç»å¨è§ä¼ä¸ 545 å®¶ãå®å
¨ä¸è´ï¼ |
| | | åä½ç»ä¸ ÷10000 è¾åºãä¸å¨ / ä¸å¨å
¬éãã |
| | | - ç»æï¼ |
| | | |
| | | | å£å¾ | ä¼ä¸æ° | è´§è¿é2025(ä¸å¨) | è´§è¿é2026(ä¸å¨) | è´§è¿é忝 | å¨è½¬é2025(ä¸å¨å
¬é) | å¨è½¬é2026(ä¸å¨å
¬é) | å¨è½¬é忝 | |
| | | | --- | --- | --- | --- | --- | --- | --- | --- | |
| | | | ååä¼ä¸ | 545 | 30153.14 | 27752.68 | â7.96% | 4635340.46 | 4389882.05 | â5.30% | |
| | | | å
¨é | 664 / 636 | 33994.45 | 31399.82 | â | 5102518.95 | 4927161.77 | â | |
| | | |
| | | ååå£å¾ç 2026 年累计æ°ä¸ç½å¤©äº¤ä»ä»¶å
¨çè¡ï¼27752.6820 ä¸å¨ / 4389882.0468 ä¸å¨å
¬éï¼å®å
¨ä¸è´ï¼ä¸¤æ¡é¾è·¯äºè¯éè¿ã |
| | | å
¨éä¸ååå£å¾çå·®é¢ä¹å·²ç®æ¸
ï¼2026 å¹´æ°è¿ 91 å®¶ï¼+3647.14 ä¸å¨ / +537279.73 ä¸å¨å
¬éï¼ï¼ |
| | | 2025 å¹´éåº 119 å®¶ï¼â3841.31 ä¸å¨ / â467178.48 ä¸å¨å
¬éï¼ã |
| | | ## äºãæµè¯ç»ææè¦ |
| | | |
| | | è§ãåè½æµè¯æ¥å_æç»å¨è§ä¼ä¸545å®¶åå¸å·ç´¯è®¡è¿è·åæ¯_2026-09-19.mdãï¼11 æ¡ç¨ä¾ï¼7 æ£å / 3 è¾¹ç / 1 è´åï¼å
¨é¨éè¿ã |
| | | |
| | | - æç» 545 è¡æ±å = æ±æ»é¡µå
¨çè¡ï¼27752.6820 ä¸å¨ / 4389882.0468 ä¸å¨å
¬éï¼å·®å¼ 0ï¼ï¼ |
| | | - å
¨çè¡ = Σ17 å¸å·ï¼17 个å¸å·ä¸ç¨æ·è¡¨æ ¼éè¡ä¸è´ï¼ |
| | | - 仿¡å¸æ 坿¯åºæ°ã累计货è¿é为 0 çä¼ä¸åå·²é²é¤é¶å¤çã |
| | | |
| | | - ååä¼ä¸å£å¾ SQL èæ¬å·²æ´èæ¬æ§è¡éªè¯ï¼12 æ¡ç¨ä¾ï¼8 æ£å / 2 è´å / 2 è¾¹çï¼å
¨é¨éè¿ï¼ |
| | | æç» 545 è¡æ±å = æ±æ»è¡ï¼å·®å¼ 0ï¼ï¼å·®å¼ä¼ä¸éåæ ¡éªéè¿ã |
| | | ## ä¸ãéçé®é¢ä¸å¾
å |
| | | |
| | | 1. ç¨æ·è¡¨æ ¼ O åé«éè¿è·åæ¯çæ¥æº/æé´å¾
确认ï¼éä¸ N å为 1-8 æç´¯è®¡ï¼ï¼ç¡®è®¤åæ¹å¯ç®ãè¿è·å¢éå·®ãã |
| | | 2. 09-18 交ä»çãè´§è¿ææ¥_æç»å¨è§ä¼ä¸_åå¸å·1-8æç´¯è®¡è¿è·å忝ãéç¨**宿¹å
¨å£å¾**ï¼åæ¯ +4.54%ï¼ï¼ |
| | | æ¬è¡¨éç¨**两年æç»å¨è§ 545 å®¶å£å¾**ï¼åæ¯ +2.90%ï¼ï¼ä¸¤çå£å¾ä¸åä½é½å·²æ³¨æï¼ä¾ä¸å¡æåºæ¯éç¨ã |
| | | 3. è¥è¯¥è¡¨è¦éãå·®å¼çæ±æ»è¡¨ã䏿¥ï¼å»ºè®®å 注两ç§å£å¾çå·®å¼åå ï¼è§ä¸ä¼ä¸åååå¨ï¼ã |
| | | |
| | | ## åãæå¤©è®¡å |
| | | |
| | | 1. è§ç¨æ·åé¦ç¡®å®ä¸æ¥å£å¾ï¼545 å®¶ vs å
¨å£å¾ï¼ï¼å¿
è¦æ¶åå¹¶æä¸çåå£å¾è¡¨ã |
| | | 2. é«éæ°æ®æ¥æºç¡®è®¤åè¡¥ç®ãè¿è·å¢éå·®ãã |
| New file |
| | |
| | | # -*- coding: utf-8 -*- |
| | | """æç»å¨è§ä¼ä¸ï¼545 å®¶ï¼åå¸å· 1-8 æç´¯è®¡å¹³åè¿è·å忝 å°è´¦ |
| | | |
| | | å£å¾ï¼ |
| | | · æç»å¨è§ä¼ä¸ = 2025 å¹´ 1-8 æä¸ 2026 å¹´ 1-8 æåè¿ç» 8 个æä¸æ¥ H203-2 ææ¥çä¼ä¸ï¼545 å®¶ï¼ï¼ |
| | | · 累计平åè¿è·ï¼å
¬éï¼= 1-8 æç´¯è®¡è´§ç©å¨è½¬é ÷ 1-8 æç´¯è®¡è´§è¿éï¼å æå¹³åï¼ï¼ |
| | | · 忝 = 2026 å¹´ 1-8 æç´¯è®¡å¹³åè¿è· ÷ 2025 å¹´ 1-8 æç´¯è®¡å¹³åè¿è· â 1ã |
| | | æ°æ®æºï¼traffic_audit.h2032_enterprise_monthly 导åºä»¶ _tmp_persist_scope.tsv |
| | | """ |
| | | import io, os |
| | | from openpyxl import Workbook |
| | | from openpyxl.styles import Font, PatternFill, Alignment, Border, Side |
| | | from openpyxl.utils import get_column_letter |
| | | |
| | | SRC = r'D:\ææ¡£\ChatGPT\traffic-audit\_tmp_persist_scope.tsv' |
| | | OUT = r'D:\ææ¡£\ChatGPT\traffic-audit\outputs\æç»å¨è§ä¼ä¸545å®¶_åå¸å·1-8æç´¯è®¡è¿è·å忝_2026-09-19.xlsx' |
| | | |
| | | ORDER = ['æ¦æ±å¸', 'é»ç³å¸', 'åå °å¸', '宿å¸', 'è¥é³å¸', 'éå·å¸', 'èé¨å¸', 'åæå¸', 'èå·å¸', |
| | | 'é»åå¸', 'å¸å®å¸', 'éå·å¸', 'æ©æ½å·', '仿¡å¸', 'æ½æ±å¸', '天é¨å¸', 'ç¥åæ¶æåº'] |
| | | SHORT = {'æ¦æ±å¸': 'æ¦æ±', 'é»ç³å¸': 'é»ç³', 'åå °å¸': 'åå °', '宿å¸': '宿', 'è¥é³å¸': 'è¥é³', 'éå·å¸': 'éå·', |
| | | 'èé¨å¸': 'èé¨', 'åæå¸': 'åæ', 'èå·å¸': 'èå·', 'é»åå¸': 'é»å', 'å¸å®å¸': 'å¸å®', 'éå·å¸': 'éå·', |
| | | 'æ©æ½å·': 'æ©æ½å·', '仿¡å¸': '仿¡', 'æ½æ±å¸': 'æ½æ±', '天é¨å¸': '天é¨', 'ç¥åæ¶æåº': 'æåº'} |
| | | CITY = dict(zip(['4201', '4202', '4203', '4205', '4206', '4207', '4208', '4209', '4210', '4211', '4212', '4213', '4228'], |
| | | ORDER[:13])) |
| | | CITY.update({'429004': '仿¡å¸', '429005': 'æ½æ±å¸', '429006': '天é¨å¸', '429021': 'ç¥åæ¶æåº'}) |
| | | |
| | | |
| | | def city_of(rc): |
| | | rc = (rc or '').strip() |
| | | return CITY.get(rc, CITY.get(rc[:4], '?')) |
| | | |
| | | |
| | | def dv(f, t): |
| | | return (t / f) if f else None |
| | | |
| | | |
| | | def gth(a, b): |
| | | return (a / b - 1) if (a is not None and b) else None |
| | | |
| | | |
| | | def num(x): |
| | | try: |
| | | return float(x) |
| | | except Exception: |
| | | return 0.0 |
| | | |
| | | |
| | | rows = [] |
| | | with io.open(SRC, 'r', encoding='utf-8') as fh: |
| | | hdr = fh.readline().rstrip('\r\n').split('\t') |
| | | for line in fh: |
| | | p = line.rstrip('\r\n').split('\t') |
| | | if len(p) < len(hdr): |
| | | continue |
| | | d = dict(zip(hdr, p)) |
| | | if int(num(d['m26'])) != 8 or int(num(d['m25'])) != 8: |
| | | continue |
| | | rows.append(dict(city=city_of(d['rc']), en=d['en'], ec=d['ec'], ucc=d['ucc'], |
| | | f26=num(d['f26']), t26=num(d['t26']), f25=num(d['f25']), t25=num(d['t25']))) |
| | | |
| | | by_city = {} |
| | | for r in rows: |
| | | c = by_city.setdefault(r['city'], dict(n=0, f26=0.0, t26=0.0, f25=0.0, t25=0.0)) |
| | | c['n'] += 1 |
| | | c['f26'] += r['f26']; c['t26'] += r['t26']; c['f25'] += r['f25']; c['t25'] += r['t25'] |
| | | tot = dict(n=0, f26=0.0, t26=0.0, f25=0.0, t25=0.0) |
| | | for c in by_city.values(): |
| | | for k in tot: |
| | | tot[k] += c[k] |
| | | |
| | | THIN = Side(style='thin', color='BFBFBF') |
| | | BORDER = Border(left=THIN, right=THIN, top=THIN, bottom=THIN) |
| | | HDR_FILL = PatternFill('solid', fgColor='DDEBF7') |
| | | TOT_FILL = PatternFill('solid', fgColor='FFF2CC') |
| | | TITLE_FILL = PatternFill('solid', fgColor='1F4E79') |
| | | CT = Alignment(horizontal='center', vertical='center', wrap_text=True) |
| | | LT = Alignment(horizontal='left', vertical='center', wrap_text=True) |
| | | RT = Alignment(horizontal='right', vertical='center') |
| | | NF2, NFP = '#,##0.00', '0.00%' |
| | | |
| | | wb = Workbook() |
| | | ws = wb.active |
| | | ws.title = 'å¸å·æ±æ»' |
| | | heads = ['å¸å·', 'æç»å¨è§ä¼ä¸æ°(å®¶)', '2026å¹´1-8æç´¯è®¡è´§è¿é(ä¸å¨)', '2026å¹´1-8æç´¯è®¡è´§ç©å¨è½¬é(ä¸å¨å
Ž)', |
| | | '2026å¹´1-8æç´¯è®¡å¹³åè¿è·(å
¬é)', '2025å¹´1-8æç´¯è®¡å¹³åè¿è·(å
¬é)', '累计è¿è·åæ¯(%)', '夿³¨'] |
| | | widths = [12, 16, 22, 26, 22, 22, 14, 46] |
| | | ws.cell(1, 1, 'æç»å¨è§ä¼ä¸ï¼545 å®¶ï¼åå¸å· 1-8 æç´¯è®¡å¹³åè¿è·å忝').font = Font(bold=True, size=14, color='FFFFFF') |
| | | ws.cell(1, 1).fill = TITLE_FILL |
| | | ws.cell(1, 1).alignment = Alignment(horizontal='center', vertical='center') |
| | | ws.merge_cells(start_row=1, start_column=1, end_row=1, end_column=len(heads)) |
| | | ws.row_dimensions[1].height = 28 |
| | | notes = [ |
| | | 'å£å¾è¯´æï¼', |
| | | 'â æç»å¨è§ä¼ä¸ = 2025 å¹´ 1-8 æä¸ 2026 å¹´ 1-8 æåè¿ç» 8 个æä¸æ¥ãé路货ç©è¿è¾æåº¦ç产æ
åµãï¼H203-2ï¼ææ¥çä¼ä¸ï¼å
± %d å®¶ï¼ä¸¤å¹´é´æ°è¿ãéåºçä¼ä¸ä¸è®¡å
¥æ¬è¡¨åæ¯ã' % tot['n'], |
| | | '⡠累计平åè¿è·ï¼å
¬éï¼= 1-8 æç´¯è®¡è´§ç©å¨è½¬é ÷ 1-8 æç´¯è®¡è´§è¿éï¼å æå¹³åï¼ï¼åæ¯ = 2026 å¹´ 1-8 æç´¯è®¡å¹³åè¿è· ÷ 2025 å¹´ 1-8 æç´¯è®¡å¹³åè¿è· â 1ã', |
| | | '⢠å
¨çè¡ = 17 个å¸å·ä¹åï¼æç´¯è®¡å¨è½¬éã累计货è¿éå嫿±ååç¸é¤ï¼ä¸æ¯å¸å·åæ¯çç®æ¯å¹³åï¼ã', |
| | | 'â£ ä»æ¡å¸ 2026 å¹´æç»å¨è§ç 2 å®¶ä¼ä¸ 2025 å¹´ 1-8 ææ è¿ç»ä¸æ¥è®°å½ï¼æ¬è¡¨æ 坿¯åºæ°ï¼åæ¯ä¸éç¨ã', |
| | | 'æ°æ®æ¥æºï¼äº¤éç»è®¡æ¥è¡¨å®¡æ ¸ç³»ç»æ°æ®åºï¼H203-2 ä¼ä¸ææ¥ï¼2025 å¹´ 1 æâ2026 å¹´ 8 æï¼ãçææ¥æï¼2026-09-19ã', |
| | | ] |
| | | r = 2 |
| | | for i, t in enumerate(notes): |
| | | c = ws.cell(r, 1, t) |
| | | c.font = Font(size=9, bold=(i == 0), color='404040') |
| | | c.alignment = LT |
| | | ws.merge_cells(start_row=r, start_column=1, end_row=r, end_column=len(heads)) |
| | | r += 1 |
| | | hdr_row = r |
| | | for j, h in enumerate(heads, 1): |
| | | c = ws.cell(hdr_row, j, h) |
| | | c.font = Font(bold=True); c.fill = HDR_FILL; c.alignment = CT; c.border = BORDER |
| | | ws.column_dimensions[get_column_letter(j)].width = widths[j - 1] |
| | | ws.row_dimensions[hdr_row].height = 42 |
| | | |
| | | |
| | | def put(row, vals, fill=None, bold=False): |
| | | for j, v in enumerate(vals, 1): |
| | | c = ws.cell(row, j, v) |
| | | c.border = BORDER |
| | | c.alignment = LT if j == 8 else (CT if j == 1 else RT) |
| | | if j in (3, 4, 5, 6): |
| | | c.number_format = NF2 |
| | | elif j == 7: |
| | | c.number_format = NFP |
| | | if fill: |
| | | c.fill = fill |
| | | if bold: |
| | | c.font = Font(bold=True) |
| | | |
| | | |
| | | rr = hdr_row |
| | | d26 = dv(tot['f26'], tot['t26']); d25 = dv(tot['f25'], tot['t25']) |
| | | rr += 1 |
| | | put(rr, ['å
¨ç', tot['n'], tot['f26'] / 10000.0, tot['t26'] / 10000.0, d26, d25, gth(d26, d25), ''], TOT_FILL, True) |
| | | for city in ORDER: |
| | | c = by_city.get(city) |
| | | rr += 1 |
| | | if not c or c['n'] == 0: |
| | | put(rr, [SHORT[city], 0, None, None, None, None, None, |
| | | '该å¸å· 2026 å¹´æç»å¨è§ä¼ä¸å¨ 2025 å¹´ 1-8 ææ è¿ç»ä¸æ¥è®°å½ï¼åæ¯ä¸éç¨']) |
| | | continue |
| | | a, b = dv(c['f26'], c['t26']), dv(c['f25'], c['t25']) |
| | | put(rr, [SHORT[city], c['n'], c['f26'] / 10000.0, c['t26'] / 10000.0, a, b, gth(a, b), '']) |
| | | ws.freeze_panes = ws.cell(hdr_row + 1, 2).coordinate |
| | | |
| | | # ä¼ä¸æç» |
| | | ws2 = wb.create_sheet('ä¼ä¸æç»(545å®¶)') |
| | | h2 = ['åºå·', 'å¸å·', 'ä¼ä¸åç§°', 'ç»ä¸ç¤¾ä¼ä¿¡ç¨ä»£ç ', '2026å¹´1-8æè´§è¿é(ä¸å¨)', '2026å¹´1-8æå¨è½¬é(ä¸å¨å
Ž)', |
| | | '2026å¹´1-8æç´¯è®¡å¹³åè¿è·(å
¬é)', '2025å¹´1-8æç´¯è®¡å¹³åè¿è·(å
¬é)', '累计è¿è·åæ¯(%)'] |
| | | w2 = [6, 12, 42, 24, 20, 24, 22, 22, 14] |
| | | for j, h in enumerate(h2, 1): |
| | | c = ws2.cell(1, j, h) |
| | | c.font = Font(bold=True); c.fill = HDR_FILL; c.alignment = CT; c.border = BORDER |
| | | ws2.column_dimensions[get_column_letter(j)].width = w2[j - 1] |
| | | ws2.row_dimensions[1].height = 40 |
| | | order = {c: i for i, c in enumerate(ORDER)} |
| | | idx = 0 |
| | | for i, x in enumerate(sorted(rows, key=lambda z: (order.get(z['city'], 99), -z['t26'])), 1): |
| | | a, b = dv(x['f26'], x['t26']), dv(x['f25'], x['t25']) |
| | | vals = [i, SHORT[x['city']], x['en'], x['ucc'], x['f26'] / 10000.0, x['t26'] / 10000.0, a, b, gth(a, b)] |
| | | for j, v in enumerate(vals, 1): |
| | | c = ws2.cell(i + 1, j, v) |
| | | c.border = BORDER |
| | | c.alignment = LT if j in (3, 4) else (CT if j in (1, 2) else RT) |
| | | if j in (5, 6, 7, 8): |
| | | c.number_format = NF2 |
| | | elif j == 9: |
| | | c.number_format = NFP |
| | | ws2.freeze_panes = 'C2' |
| | | ws2.auto_filter.ref = 'A1:I%d' % (len(rows) + 1) |
| | | |
| | | os.makedirs(os.path.dirname(OUT), exist_ok=True) |
| | | wb.save(OUT) |
| | | print('OK ->', OUT) |
| | | print('ä¼ä¸æ° %dï¼å
¨ç 2026 %.4f / 2025 %.4f -> %.4f%%' % (tot['n'], d26, d25, gth(d26, d25) * 100)) |
| New file |
| | |
| | | -- ============================================================ |
| | | -- 2025 / 2026 å¹´ 1-8 æç´¯è®¡ è´§è¿éãè´§ç©å¨è½¬é æ±æ»ï¼ååä¼ä¸å£å¾ï¼ |
| | | -- çææ¥æï¼2026-09-19 æ°æ®åºï¼traffic_auditï¼MySQL 8.0.29ï¼ |
| | | -- ------------------------------------------------------------ |
| | | -- æ°æ®æ¥æºè¡¨ï¼h2032_enterprise_monthly |
| | | -- ãé路货ç©è¿è¾æåº¦ç产æ
åµè¡¨ã= 交ä¼ç»H203-2表ï¼ä¼ä¸çº§ææ¥ï¼è§ä¸ä¼ä¸ï¼ |
| | | -- åæ®µï¼freight_total è´§è¿é_æ»è®¡ï¼å¨ï¼ |
| | | -- turnover_total è´§ç©å¨è½¬é_æ»è®¡ï¼å¨å
¬éï¼ |
| | | -- report_period æ¥è¡¨æï¼æ ¼å¼ 'YYYY-MM' |
| | | -- enterprise_name ä¼ä¸åç§° |
| | | -- å使¢ç®ï¼è¡¨å
åçæ¯ãå¨ / å¨å
¬éãï¼æ¥è¡¨å£å¾æ¯ãä¸å¨ / ä¸å¨å
¬éãï¼ |
| | | -- æä»¥ä¸é¢ç»ä¸ ÷10000ã |
| | | -- æé´åæ³ï¼1-8 æ = report_period BETWEEN '2025-01' AND '2025-08' |
| | | -- ï¼report_period æ¯å符串 'YYYY-MM'ï¼ç´æ¥æ¯å¤§å°å³å¯ï¼ |
| | | -- 为ä»ä¹è¦ãååä¼ä¸å£å¾ãï¼ |
| | | -- 2025 å¹´ 1-8 ææ 664 å®¶ä¼ä¸ã2026 å¹´ 1-8 æåªæ 636 å®¶ï¼ |
| | | -- ç´æ¥æ¿ä¸¤å¹´æ»æ°ç¸åï¼å·®é¢éæ··çãä¼ä¸æ°éåäºãçå½±åï¼ä¸æ¯çå®å¢åã |
| | | -- æä¸¤å¹´é½æ¥éè¿çä¼ä¸åç§°å交éï¼å®æµ 545 å®¶ï¼ï¼ä¸¤å¹´çä¼ä¸èå´æä¸è´ã |
| | | -- 宿µç»æï¼ååä¼ä¸å£å¾ 545 å®¶ï¼ï¼ |
| | | -- 2025 å¹´ 1-8 æï¼è´§è¿é 30153.14 ä¸å¨ï¼å¨è½¬é 4635340.46 ä¸å¨å
Ž |
| | | -- 2026 å¹´ 1-8 æï¼è´§è¿é 27752.68 ä¸å¨ï¼å¨è½¬é 4389882.05 ä¸å¨å
Ž |
| | | -- 忝ï¼è´§è¿é -7.96%ï¼å¨è½¬é -5.30% |
| | | -- ============================================================ |
| | | |
| | | |
| | | -- ===================================================================== |
| | | -- æ¥è¯¢ 1ï¼æ±æ»ä¸è¡ ââ ååä¼ä¸å£å¾çä¸¤å¹´ç´¯è®¡æ° + 忝å¢é |
| | | -- ===================================================================== |
| | | SELECT COUNT(DISTINCT e.enterprise_name) 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 >= '2026-01' THEN e.freight_total ELSE 0 END) |
| | | / NULLIF(SUM(CASE WHEN e.report_period <= '2025-08' THEN e.freight_total ELSE 0 END), 0) - 1) * 100, 2) |
| | | AS è´§è¿é忝_ç¾åæ¯, |
| | | 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_ä¸å¨å
Ž, |
| | | ROUND((SUM(CASE WHEN e.report_period >= '2026-01' THEN e.turnover_total ELSE 0 END) |
| | | / NULLIF(SUM(CASE WHEN e.report_period <= '2025-08' THEN e.turnover_total ELSE 0 END), 0) - 1) * 100, 2) |
| | | AS å¨è½¬é忝_ç¾åæ¯ |
| | | FROM h2032_enterprise_monthly e |
| | | -- ä¸é¢ä¸¤ä¸ª JOINï¼åªè¦ä¸¤å¹´ 1-8 æé½æ¥éè¿çä¼ä¸ï¼ååä¼ä¸å£å¾çæ ¸å¿ï¼ |
| | | JOIN (SELECT DISTINCT enterprise_name FROM h2032_enterprise_monthly |
| | | WHERE report_period BETWEEN '2025-01' AND '2025-08') a |
| | | ON a.enterprise_name = e.enterprise_name |
| | | JOIN (SELECT DISTINCT enterprise_name FROM h2032_enterprise_monthly |
| | | 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'; |
| | | |
| | | |
| | | -- ===================================================================== |
| | | -- æ¥è¯¢ 2ï¼éä¼ä¸å¯¹ç
§æç»ï¼ååä¼ä¸ï¼ä¸¤å¹´å¹¶æï¼ï¼å¯ç´æ¥å¯¼åº Excel |
| | | -- æ 2026 å¹´è´§è¿éä»å¤§å°å°æï¼å»æ ORDER BY å°±æ¯å®æ´ 545 è¡ã |
| | | -- ===================================================================== |
| | | SELECT e.enterprise_name AS ä¼ä¸åç§°, |
| | | MAX(CASE WHEN e.report_period >= '2026-01' THEN e.region_code END) 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 >= '2026-01' THEN e.freight_total ELSE 0 END) |
| | | - SUM(CASE WHEN e.report_period <= '2025-08' THEN e.freight_total ELSE 0 END)) / 10000, 2) AS è´§è¿éå¢å_ä¸å¨, |
| | | ROUND((SUM(CASE WHEN e.report_period >= '2026-01' THEN e.freight_total ELSE 0 END) |
| | | / NULLIF(SUM(CASE WHEN e.report_period <= '2025-08' THEN e.freight_total ELSE 0 END), 0) - 1) * 100, 2) AS è´§è¿é忝_ç¾åæ¯, |
| | | 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_ä¸å¨å
Ž, |
| | | ROUND((SUM(CASE WHEN e.report_period >= '2026-01' THEN e.turnover_total ELSE 0 END) |
| | | - SUM(CASE WHEN e.report_period <= '2025-08' THEN e.turnover_total ELSE 0 END)) / 10000, 2) AS å¨è½¬éå¢å_ä¸å¨å
Ž, |
| | | ROUND((SUM(CASE WHEN e.report_period >= '2026-01' THEN e.turnover_total ELSE 0 END) |
| | | / NULLIF(SUM(CASE WHEN e.report_period <= '2025-08' THEN e.turnover_total ELSE 0 END), 0) - 1) * 100, 2) AS å¨è½¬é忝_ç¾åæ¯ |
| | | FROM h2032_enterprise_monthly e |
| | | JOIN (SELECT DISTINCT enterprise_name FROM h2032_enterprise_monthly |
| | | WHERE report_period BETWEEN '2025-01' AND '2025-08') a |
| | | ON a.enterprise_name = e.enterprise_name |
| | | JOIN (SELECT DISTINCT enterprise_name FROM h2032_enterprise_monthly |
| | | 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 |
| | | ORDER BY è´§è¿é2026_ä¸å¨ DESC; |
| | | |
| | | |
| | | -- ===================================================================== |
| | | -- æ¥è¯¢ 3ï¼ä¸ç§å£å¾å¯¹ç
§ ââ çæ¸
æ¥ãå
¨éãåãååãå·®å¨åª |
| | | -- ALL_2025 / ALL_2026 : åèªå¹´ä»½çå
¨é¨ä¼ä¸ |
| | | -- SAME_2025 / SAME_2026 : ååä¼ä¸å£å¾ï¼545 å®¶ï¼ |
| | | -- ===================================================================== |
| | | SELECT t.scope_type AS å£å¾, |
| | | COUNT(DISTINCT t.enterprise_name) AS ä¼ä¸æ°, |
| | | ROUND(SUM(t.freight_total) / 10000, 2) AS è´§è¿é_ä¸å¨, |
| | | ROUND(SUM(t.turnover_total) / 10000, 2) AS å¨è½¬é_ä¸å¨å
Ž |
| | | FROM ( |
| | | SELECT 'ALL_2025' AS scope_type, enterprise_name, freight_total, turnover_total |
| | | FROM h2032_enterprise_monthly WHERE report_period BETWEEN '2025-01' AND '2025-08' |
| | | UNION ALL |
| | | SELECT 'ALL_2026', enterprise_name, freight_total, turnover_total |
| | | FROM h2032_enterprise_monthly WHERE report_period BETWEEN '2026-01' AND '2026-08' |
| | | UNION ALL |
| | | SELECT 'SAME_2025', e.enterprise_name, e.freight_total, e.turnover_total |
| | | FROM h2032_enterprise_monthly e |
| | | JOIN (SELECT DISTINCT enterprise_name FROM h2032_enterprise_monthly |
| | | WHERE report_period BETWEEN '2025-01' AND '2025-08') a ON a.enterprise_name = e.enterprise_name |
| | | JOIN (SELECT DISTINCT enterprise_name FROM h2032_enterprise_monthly |
| | | 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 '2025-08' |
| | | UNION ALL |
| | | SELECT 'SAME_2026', e.enterprise_name, e.freight_total, e.turnover_total |
| | | FROM h2032_enterprise_monthly e |
| | | JOIN (SELECT DISTINCT enterprise_name FROM h2032_enterprise_monthly |
| | | WHERE report_period BETWEEN '2025-01' AND '2025-08') a ON a.enterprise_name = e.enterprise_name |
| | | JOIN (SELECT DISTINCT enterprise_name FROM h2032_enterprise_monthly |
| | | WHERE report_period BETWEEN '2026-01' AND '2026-08') b ON b.enterprise_name = e.enterprise_name |
| | | WHERE e.report_period BETWEEN '2026-01' AND '2026-08' |
| | | ) t |
| | | GROUP BY t.scope_type |
| | | ORDER BY t.scope_type; |
| | | |
| | | |
| | | -- ===================================================================== |
| | | -- æ¥è¯¢ 4ï¼å·®å¼ä¼ä¸ååï¼æ ¸å¯¹ç¨ï¼ââ åªå¨ä¸å¹´æ¥éçä¼ä¸åå
¶ç´¯è®¡é |
| | | -- only_in = 2025 / 2026 |
| | | -- 宿µï¼2025 å¹´ç¬æ 119 å®¶ã2026 å¹´ç¬æ 91 å®¶ï¼1-8 æå£å¾ï¼ |
| | | -- ===================================================================== |
| | | SELECT '2025' AS only_in, e.enterprise_name AS ä¼ä¸åç§°, |
| | | ROUND(SUM(e.freight_total) / 10000, 2) AS è´§è¿é_ä¸å¨, |
| | | ROUND(SUM(e.turnover_total) / 10000, 2) AS å¨è½¬é_ä¸å¨å
Ž |
| | | FROM h2032_enterprise_monthly e |
| | | LEFT JOIN (SELECT DISTINCT enterprise_name FROM h2032_enterprise_monthly |
| | | 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 '2025-08' AND b.enterprise_name IS NULL |
| | | GROUP BY e.enterprise_name |
| | | UNION ALL |
| | | SELECT '2026', e.enterprise_name, |
| | | ROUND(SUM(e.freight_total) / 10000, 2), |
| | | ROUND(SUM(e.turnover_total) / 10000, 2) |
| | | FROM h2032_enterprise_monthly e |
| | | LEFT JOIN (SELECT DISTINCT enterprise_name FROM h2032_enterprise_monthly |
| | | WHERE report_period BETWEEN '2025-01' AND '2025-08') a |
| | | ON a.enterprise_name = e.enterprise_name |
| | | WHERE e.report_period BETWEEN '2026-01' AND '2026-08' AND a.enterprise_name IS NULL |
| | | GROUP BY e.enterprise_name |
| | | ORDER BY only_in, è´§è¿é_ä¸å¨ DESC; |
| | | |
| | | |
| | | -- ===================================================================== |
| | | -- æ¥è¯¢ 5ï¼åå¸å·ãååä¼ä¸å£å¾ã两年累计对ç
§ |
| | | -- å°åºä»£ç å 2026 年飿¡è®°å½ç region_code |
| | | -- ===================================================================== |
| | | SELECT CASE |
| | | WHEN region_code LIKE '4201%' THEN 'æ¦æ±' WHEN region_code LIKE '4202%' THEN 'é»ç³' |
| | | WHEN region_code LIKE '4203%' THEN 'åå °' WHEN region_code LIKE '4205%' THEN '宿' |
| | | WHEN region_code LIKE '4206%' THEN 'è¥é³' WHEN region_code LIKE '4207%' THEN 'éå·' |
| | | WHEN region_code LIKE '4208%' THEN 'èé¨' WHEN region_code LIKE '4209%' THEN 'åæ' |
| | | WHEN region_code LIKE '4210%' THEN 'èå·' WHEN region_code LIKE '4211%' THEN 'é»å' |
| | | WHEN region_code LIKE '4212%' THEN 'å¸å®' WHEN region_code LIKE '4213%' THEN 'éå·' |
| | | WHEN region_code LIKE '4228%' THEN 'æ©æ½' WHEN region_code LIKE '429004%' THEN '仿¡' |
| | | WHEN region_code LIKE '429005%' THEN 'æ½æ±' WHEN region_code LIKE '429006%' THEN '天é¨' |
| | | WHEN region_code LIKE '429021%' THEN 'æåº' ELSE 'å
¶ä»' END AS å¸å·, |
| | | COUNT(DISTINCT d.enterprise_name) AS ååä¼ä¸æ°, |
| | | ROUND(SUM(d.freight_2025) / 10000, 2) AS è´§è¿é2025_ä¸å¨, |
| | | ROUND(SUM(d.freight_2026) / 10000, 2) AS è´§è¿é2026_ä¸å¨, |
| | | ROUND(SUM(d.turnover_2025) / 10000, 2) AS å¨è½¬é2025_ä¸å¨å
Ž, |
| | | ROUND(SUM(d.turnover_2026) / 10000, 2) AS å¨è½¬é2026_ä¸å¨å
Ž |
| | | FROM ( |
| | | SELECT e.enterprise_name, |
| | | 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 enterprise_name FROM h2032_enterprise_monthly |
| | | WHERE report_period BETWEEN '2025-01' AND '2025-08') a ON a.enterprise_name = e.enterprise_name |
| | | JOIN (SELECT DISTINCT enterprise_name FROM h2032_enterprise_monthly |
| | | 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 |
| | | ) d |
| | | GROUP BY å¸å· |
| | | ORDER BY è´§è¿é2026_ä¸å¨ DESC; |
| | | |
| | | |
| | | -- ===================================================================== |
| | | -- æ¥è¯¢ 6ï¼æ°æ®ä½æ£ ââ ååä¼ä¸éæä»½ä¸è¶³ 8 个æçï¼ç´¯è®¡æ°ä¼åå°ï¼æ¯å¯¹æ¶æ³¨æï¼ |
| | | -- æ£å¸¸ï¼2025 å¹´ 1-8 æ 8 æ¡ + 2026 å¹´ 1-8 æ 8 æ¡ |
| | | -- 宿µï¼æ å¼å¸¸ä¼ä¸ï¼å
¨é¨ 545 家两年å 8 个æé½å
¨ |
| | | -- ===================================================================== |
| | | SELECT e.enterprise_name AS ä¼ä¸åç§°, |
| | | SUM(CASE WHEN e.report_period BETWEEN '2025-01' AND '2025-08' THEN 1 ELSE 0 END) AS è®°å½æ°2025, |
| | | SUM(CASE WHEN e.report_period BETWEEN '2026-01' AND '2026-08' THEN 1 ELSE 0 END) AS è®°å½æ°2026 |
| | | FROM h2032_enterprise_monthly e |
| | | JOIN (SELECT DISTINCT enterprise_name FROM h2032_enterprise_monthly |
| | | WHERE report_period BETWEEN '2025-01' AND '2025-08') a ON a.enterprise_name = e.enterprise_name |
| | | JOIN (SELECT DISTINCT enterprise_name FROM h2032_enterprise_monthly |
| | | 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; |