From dc334ca60d0f635eb112bd961e93f1d2dbecc333 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Fri, 3 Jan 2025 16:07:55 +0800 Subject: [PATCH] 'commit' --- Excel/幼儿入园.xlsx | Bin 11459 -> 12028 bytes .../com/dsideal/base/Tools/ExportExcel.java | 58 ++++++++++++----- src/main/resources/Sql/ExportExcel.sql | 60 +++++++++--------- 3 files changed, 72 insertions(+), 46 deletions(-) diff --git a/Excel/幼儿入园.xlsx b/Excel/幼儿入园.xlsx index a544c5c9efecd52b1460be07ed0857152a4d4eff..f2ca507559b3778814cbe5fa32c67a0937c452f3 100644 GIT binary patch delta 9645 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 delta 9036 zcmY*<2|QH)`oBm>mIy@%mCR(zR(9DZyD^q*WovAetYbMLTUip5eM!bTvQx5Vt1*_w zIw+MagW;R8G>HG1?!CYNz4JOV=bSmu=REIcJ=KzV`gTiTL`Z` zg*ryR5MCdD>^yCsRzg2a+XXRP0=~d{WH|MlFhAS#8mz3fXLQpUwH|iy^uB+d=u=A- zNeJ8}8?V}FwcXmxyJ6Js*=DW189B78H+gaRilG^+Sm>9DpAVZ2hYf!)OupdIb1`OL z{?t4{B;(Z2T;5ZTaeBU^((b9uoo^5Ok| z&2x}l@WjbuK6}8%Anw!7q5F@QVoN6v$7aLm&2BL<*V66qFdd_#s|CORt-Z9?<5vKO zTOZ8M_HRVDcTa`;4uwf9wleP>-#(_3!9MGrf6f7xE`7o7#og?L)U#0p_{il(>H0^D z?Yi96e!~mYKSLpohYx;FRpq|&?K%GfehIc8e$_YucGDOJgTR~|bA@%6Gam$ZiWQr) zC{*7w&t`p}vH8?Lk8e2eB4@Egb8=J>;BPltS9&U%3u&G#R*=oZGihIb8~EIk?9nrQ~6a#$10=IdHwOR(BrD1HkFK7N&l?)Iz9iuuW{;O(9LY8{N+7B zL1{F6MgA6DV>?sv?r|&N&y&jAmBK~4k*Qbf;{pUZf4jJ9@c!By6pP3RwqrUjA>X7% z_Zi|7N>}7?k<5Pv9{S^q^7G)V7mV^!q@i3#R<7>k(Ke>+nZ}c{eVwc`!Q%Bd{<$kB z|FF%|8rLMdd;L*j($PcN^@1~ppe>k~&vJb}EffkGriZRxUU3It8;>sG``N| z9s$(D_1&B}Q;p`7pp<@!aFDgemxF`F-Jsp0kp2F{MY43q*McML07ZD`;Fa+Gx$v-q z4(p9M^)SXsaCh+M*U=Fu>%P&I9)K`3f{ze($76X#oCIvM}Hfez?3cqtSAB@Oir#@TX8;=iEP9-l6C>&mDgD z+<|k~YyA2y&A2TNsX#%>S4_v?+i>`JL0QF0IkuwpO+K(^jymY_`a0VYvc0*!lT!J< zzW@_g@D@dRfTC`FE-m=bKb(K`o?~sBn0GYZzgn5XQ2m^PfgP8-$;C@Gkvvd@eJrT#b{8V7jo`n5=pD zt4&?Q`a_0aS+`%AFi^cm+1UTBf}88!)%+>_Bd+>WoGI{S7(x}e&-p21ge&{g?iZ04 z9ZiCwRUA5-jORH&MG6a!1H(;rSK^CBLv{R&7({QBq>i|EGss#$*0L`Dnzq`4Ty(P=E zE?PJ7rXKwCkN@e~D%L=V(z>|R%OFa9nH>K!)8xrZKO;2|;IY*6qw!@AVr^p>>s#z) z{tm|_dsB=ea$@oJ?Qy)RVPrv(wmmZEr;P^j;xEL==lK=M@x>#i$rE2YF1+v)ssHSo zF=DMznC532w*b_&+e>LSgxk)f4sNAP6@CunOAX@?6s1-YMP6u33#Gnf6{Vg4$8(v) zZ=s$TtX|T3{hG2JKj6mwa$wQ#9o^?cHy5T8&H5~!++&ySWfZE3N(^g9CC6|1Ju$$= zBpAnCsOmBn1S(4hB*-s)oY+ZO@z$P5x?a- z{dv{|E`C#h?8y14!1qFN)i;CX$`ig8(i{@*y#0gN^Pa3fXKm=^WSvk@;{|5PEujST z*u8#O&RK+?eJFyzyN1Bc22~p^%=RMJ5JE2@HjNXpyfK>zqqC4J!b%e(Mn)1z_snc- z1PY}9t@p>t=dA2h5|s5;&XlWLXczb0^0ZS405>xgU+nv=%+lAly-3H)jLk9%9inzv zlrJvF8{A(vO2P^mtWWt6`rL#9x5Z6 zt|Y*s1>h)8wVG@%>T^P95qD+GL`vnmx#W7n+Z3x;VT8wTH-AqKFp1t>4Ze~%mV=HR z*BcNw7lb-k$Bzl271WL?UtUfxRM*mu>SMiUcO7YFA989fhQYkHQAOz1L{rVI4p8BS z*wG7z*OhA>%GHAdr}GNE}>UgKOe5ttHjwq$5ZOk3Cm<))H23!GiICLG1$ zZEH&{BrHh4QS3AIb(_>B!?mRqL%&6Cr~|z|#(bm`<|2d$03lv@x0z`Z8nw|CJTza9 zNqH`h_4i3bf2nv~w<*$Cy9sDvR&%iak!fg$cLr5eUV0d>T&#a$6iqt&cbj8V157X6 zR#B=ws(j4|4$-8SV&l4={S^}{hGQZY`iPdV=l)|e<)0ZPc!grTow_r2w_L3!m)NPv zUCxUh^XfMk5VzO|r9)D6R(fFI$-j)Oj>Opm+Bok828sF|^~R;l@p?>tgbk_p8Coju zHDT*sKh9m(9Qh*}=8`Q2^@*^t{ZmNT6e)i6Lag$GsIEilf+f?!d>>aq0@dGNVBgEr z2D#0dy?R_3k|W@T;gg0dRz%}skJ%zu89aSNj8kB@>yDvK#*)flw~7P!l_oirZc~Bd za{Z0{S&eKVvUL&x@aY@%cK4_kJ%@2PCiKv{4(O8kXsJ{^&(`9Sg|x*%g`a~6^)607 zB|5Z$NFH_{MHXm}UfKzu5G*5HlW zXZxvzW-YgJ4ydHi&Fn$4=Aa~SZ0hyq4-w4nh(5f2-Ct_#p2$L@~eu6XKSnFg$Qh7dOC!9_N4v zTIn@jaUBZCzA^dy#_d1H=WzQnK z2*Sv_*b(B2c&5`EHNw`CPPRc~>I$fHP#ds}X|VuTx2i`)C`90)7UmWi3!AK#4|pRI z(6q<0nB~Qx@Mr&?4XNw|)C({momx#so9xvPrn1m4IYb1nsMXd91i@RrCd0%MQ?2e0 zJn~D19vS2{hIQHi>vFqh^_vDAcic_4Wb2_ek;pB)QDxvTetj+rDHZHm(#$RHzBfvg z8y!K?H8qxo=)rS7s2!-X6)tgV-oC`>GW2Lz$p=?>r}#7{bg;mdq^1gOi}P^1lwKwV zZA;dzNEzcS|MepKrD@(vQ^E8Ufz{~Ci=+~i&yolnp^*TrfL_U2r~k|rDbRy6(Jb@7 zi?*s-h=x_hJrDE%{cN*W_3JPCO^?ca=h=|;UnL8QY@%va4TT5PGIq4y0~Lgw>J$I1 z?~ifo-_1#L3km26b`hV!6Yy!%q_P!4xwvt`(sT9U#^4L#6U_J4N$x(Mow>^uEgXsi zvDh%K0Kgg3?3}7xTX)O4=mbJpsjtF+(~x2L#_ zvsi!6e470<{uDxdcrz}KJTfS(3cC>5#Qc#mi20JHlgPW745s)4J*yJ zC2jIS@{WXTd5VAnUC=Mc3obbYEw#%Yck`9ye1!QCDC$#qKg`7g5xA#?spQ4_Q`6Dv z4c)YV5E^9-Vaz@-j{^BXN6j_w1@1&OY1PSGThzEtMG~B^To4K^&=C|3NF0;+|H1X6 zDnlfsY0ps6X~%xF`HH9LxL(DxF)0fG%!~gaJprOTI&WMlKA6Y%Tm{rw^e`(-p)E)c zQwf>|WrqC4NoaQ-#_eqAxmC$QRHzq0v!=OV{fW=4%EJg#A;)U#(WW)hln>g2(;1RB z#9me!Xq<_9v9})@?a*pQs#1YU3g3)ailODVMfEaX0P|Jc7-Xk>n@VGMQej)a@Q&L; zT3Ir>WGHo7e}%JL3_8dr_FwLn$H%Dxx*JGssu2Eq<9K7@+BDAr0(_2h`~RoRTDwzi zkc2%s!1GN0furU(?*Q&os?sk~zsI6^O|D&=t*v{*gl1GPYw!mi+?~o6f@dq$*9in# zOv{|Yt|hZty&~C`giyFP-Ko&uLWzv(w@l@%Czce;wp!=vUaV*pGgzp=ccLyLlqFMe zzEkGJzF2HSn5Lv;9KRWfe(Pg}nHqAs^+^M=Aj7Gfqd5u4EkYpS|VHlx59{7n_)RwQ^7WMwvigb8*y61{!1S& zTgJJfpgx>2YI2npe~SMC1>*@HlAzr=EniRQVM15EEF!2R34+Q#&oi;egpRP)hwlaC z(H>BQeuEQc?W=R~6=OG~M}dYA7G%AZX-y@C(2e(WD;)s2CI_a}$CDnb)grRS~bZf<#F&VYw%#I2+NengA!Q(Tb; zVnY8lA%nZ7j`f_xOjR=aYiw;D*G)IRYj6~I%1R|Rz)l0X)A|Hh12g{F5Jyx4X_to$ zs&e|$U$@*}Ugp61e`g&dIQimn{37rjWkYx%{Y|SY1@fVeH+MjE25EEf zH779?36?bu>TZ}(pBWgEST-KRW-ww9V>OdP#G#)de5Z#I5*`?;V`aBzS3;z4)h(eX zOlw8~3W0m5${~{<-eh|j@<&}6jIZJ?ktsE(gR-uhWhK_1Opi|bQ&Ts};aw^_`fk0p z5XP7uJ93NpRn_CD@+C}M?%``fAwjxX7elcH5!_eq1Jii1cZU%iwWnHF$D5t*zN`lM zV(RVero~xa{nDmXTF1m?nWtyOPQw`s9NC88NUw2hP;!AevS7Nlj!!I&u#=UlUfT_` zmNg@qP(atRA+Dwx66N@?CvS{E247h}*9ODIau~{AF>W2Jh;2YI6TK`nskv*(=ta%4 zt!h#yOxmez?LvE7Vh`mqx>BMf(HWFOru2e;_Whx7MctI5lY?O%aOnNeLhVuDU~ zH0Bh-?q2BK!w1yJEGe8&7E&enu6wAj%;-WvWR_%{>0)a(|vp$&H4tGRTIaDXHi-(TuD^{1$#|pe|<_cA&z@AmBlZ!_XPU}BDJ3oN^ue4_D}67Z^yt=Noc zSypzirwapoL*e{-rwS*8^k3U$toIXCQH&uC{+{2rbI?9FVh>ZHniNr zIUuW{X0~$-C-;Ql6T5|V?M&!xwK6OKUbB`q8`&*{Y^$xx$2n@V`)qULwX0=SC)&j= zBq41mT2~hy#m)lu5@*7h!i!HJrg!ZvMself7L9x85M63F#t3W8^?4PqW9Ij=Av=`i|#M*io0`Z z?t@+*vz6>Lx{`;zQm&Ep3$==qvPOrEf}C)SsiYZ zUJ}f(%o0QE`V8ZCw-z?sISYBvS=c4K%robyeEPw{hp6rZ^q$pabwmF zz&cp?wuZ2U)Q_9i5Gm6Xe3H-5SWVrYh?_J@ALDSuju!g!w+s@zcs*+K_reoc=?Dt0 z%z2}bAReO!?-i&9pK#jWz=Vibt5zG@B46Z3@SeRaVB?Qn+lt1$as1TB&xBCMbioQ{ z65uJY0!`zQk7fUiOYUY?q^9;=U%>tsz!)2@3;+?W7(e=5PLK3v04d_q|HV%9Qp2BG+Gjf-SMyl1#qS zy3i4Ei#P*8v4E$^?J4cmk?1CM?8(~U%Y(T}e>;iSLjq?D8UrzR-1wv|_Ij>~<@vc| zYX7RXC4d$3{?}db0vv3H*4CmcYQ8lZiY>9}41q0EFr`n-c*=(d?1~b>MhQ8O#|^0$ zZzTYNdZ@Wxn58fxa8nCIDKA{yX_a_wF`uh9BoLol6&yucWHY(A>ce;CNZAg7nu&o4 z6F`{aS8Z&U64MA1dxZq0uvdiADsbL`zlf0T?P|3WP8bPccttblILLKy+9`bIOr}HI zb5c~O7IFJomb$aKbBkYUt;>$E8o-k&^`5U?QH4WxRIT_V*31xj*cy32gh*uie+_PV zx1+>cLr4&Y?_B_us|dC}9B{HN@-PuL-zo+P^~*x%B^Zz}kDT2+L}!PK{V&5POKd-f z!P>o*(l$jW+YwP_Ja^9!Gm4rs|?eqPEw>}H%#sVqJ?|{Dj}?cy8qS# zBghHXCGZyW@dR`}5MhIi`Uq?OqG^R9ep56qY|fVor5>Ljx;?BEE}RgHeiKnk80CPr zC8Uhyqmu>oRzAYSbPz4Sg}`!M-3kz+R{4v9VT>JZ33--%~R8HlOAxx zkU5|}U}LgO_*engK%QvZ4kNCLPtl=PMV6+oQBRE9&v<|(^Amqg*Erl)L;^0bzymX* z7inkP8g>^<_WthtBwr<;u3Tq*0g}V!8V1rf*cEU2| zz)%5O7ZD4vRoo*fvgJ1mK|*Q8@ooOfMwOtO({CEeyt|Fy%E9g0Ze1dfwqhYODv_y~ zSaUlF%tl>6o9x;|-dC|Q>w(i&q%V9k@tu3Ulw-a?U4v0h+**M4W)OsTNdjYt3@6V4G zuO#;TpQz`7aq9RblN9m>D&s)BA`>o^nAOJ~M?cD2-nqqI)wu=fH)1G?A`I9^@|37l z*k+q);0DIeBpRB2&d?h&HSUoIe6x`Ca5G1v-&`7%n4eYv)7?ivn`I<&>?3}C@}!Z9 zulwG-46ludY=t}0{?8R@fX`A!UQO3jzid>6O^&T;hMwXHYucKUrL3NZRA0WEZGWB> zUzw2kRc(uLaa_k}f2+3hJ1oX}by2ayI?wnS`wN*|#nwfSZc@ z&PokEg;j9<)0*0KUmW-&`$u9ei^wj+=nl4t@&@oh!u5S~PX%BcVceDf*>a1-{HM*B zO|H$wm(?h)B8%kqsNYE7NKG#Ew0k7U=(OD6O|bSqMb7FH6qNPh?5BrXS@Qe-6(4T} zieF$;UE->gtmxv<7s$An(egy_S|C1|oL;N$qTSc`46wB@K~914W?0I&gW?)v)vo5% zg46&=UNSFwPUTFdR0~gLkO|8wD}I0_OMTbQx!22qKLTX2a0c%HvQW1d-ghq9os^WT z`u?U9n{7aZh9*$CW0>5t?S)zKl*@OOGl_EbyXt(IyWe}BikCu?KS1L@RAtkJe1mJX zd+z_1{}`5%-}J4acm1S^T)#sXY5o?lA62iKOEkLmbPAl;0u41h!I!H@*6t!jb;tW| z+KEb3UO!WP;mmH`$&&igwly@{3IM-!{d!+$pKj95C{Dsp779IE+8>AfamQ zOD>c94xNBpDBX*!!7f?K8cUXxNm9?t1!NS2y${OVw}de1Ix%6nb%|-q%i+UxV!*i> zH}8U4?MULu2R$a|KrL4Xun4dM*oJ%7y`O>^KfMJ_Goz+kko>^iv|s+57ib2FJMR<8 ztVZIka)J0M377ClBAa7R-!mheL~Q8m)vV_#w<)%+IIki$QG*Ec$s3(GdX%F78XEDy>TXUsaV=ZtJ ze}xB;z57Q3!P={b41|H#pVDOm1`8JL*ZT&;n=T4Ac+wHDN!Ek z_4?Rbl}Q&e1J~|5c}}Zmn!a8tH;ac`4q6f~coP3q;w~r<{;H?}IOk<3*?T9L?atdt zi)$i|q3w30B5iHY#oKzknHgNy1jL=)p@Desv4kuuE{RZIOy?S;AD?~M{iUKTRQG#; zAfF|@i%(w* zef>guJX!8v7NMtDT7HO4OybK*x6B15p97&cE&*xZ6?7~1@ORT{n>yD{m&KE>HA&0d z&)^EYDpOgaNt@xKUf8&Fx$#WgoWhei$6H;FGnQLpA^T@xG#wdSxC>h2-}g`4KKCCm zdk)%r{{my!H|vU(lwrM^8ZvjLEL@A4z>+12(OH8#@9m}1QviW?Pe2p24)v0P*htNM zme+V4Lkm~#bNODIxJJ2r9xaL2^>%V@lIh0_J$^b>-svyamB_}p=rGE7dHmm)j6cDH z$q6fXJ@Xt;MDA-H1d;mkW9|`tHy4esUy~Mh1&`cQJVZwyZJRkODs&oE`-AJf;41K3 z>pK9TtSs#3ym#`AcpI|2K0lt)+yPt%uy#(sc6If-Z-hD@{Lhc=oxOKQ`<^>Lwy6wT z&>X(%;qdbZur|~$lzORCmb7E5BYX?`jB@PiKg=(e#B6??zB;U5^FhoeFU2`YzeZiS z>qLt4BlRdYp{|{<s1xpPG=Z?eXE}=3S*Aj-xG3zAvp* z(tt+mdn)zN99#qsSMF9l+}NL)QwMgwYi!b%zJ;HW#*Y|iYxSqUG4?76)6rp0OB@3i z?~l=+q5IE^C~1vXHE3_1>|9l%?W84DSr)>@?Eb!ak>)R{C`>#1@1_1TbpQRSP5UG% zMjN;;dH$Gh8mrWK+KGhJ`D5j2dQw6cXrnz=i^|5qLGtu;bo~E4m~M mergeStartRow) { - // 合并行政区划列 + // 处理上一个行政区划的最后一组类型合并 + if (rowNum > typeMergeStartRow) { + sheet.addMergedRegion(new CellRangeAddress( + typeMergeStartRow, rowNum - 1, 1, 1)); + } + + // 处理行政区划合并 + if (rowNum > districtMergeStartRow) { + sheet.addMergedRegion(new CellRangeAddress( + districtMergeStartRow, rowNum - 1, 0, 0)); + } + districtMergeStartRow = rowNum; + typeMergeStartRow = rowNum; + } + // 在同一个行政区划内,处理类型的合并 + else if (!currentType.equals(lastType)) { + if (rowNum > typeMergeStartRow) { sheet.addMergedRegion(new CellRangeAddress( - mergeStartRow, rowNum - 1, 0, 0)); + typeMergeStartRow, rowNum - 1, 1, 1)); } - mergeStartRow = rowNum; + typeMergeStartRow = rowNum; } lastDistrict = currentDistrict; + lastType = currentType; rowNum++; } // 处理最后一组合并 - if (rowNum > mergeStartRow) { + // 先处理最后一组类型合并 + if (rowNum > typeMergeStartRow) { sheet.addMergedRegion(new CellRangeAddress( - mergeStartRow, rowNum - 1, 0, 0)); + typeMergeStartRow, rowNum - 1, 1, 1)); + } + // 再处理最后一组行政区划合并 + if (rowNum > districtMergeStartRow) { sheet.addMergedRegion(new CellRangeAddress( - mergeStartRow, rowNum - 1, 1, 1)); + districtMergeStartRow, rowNum - 1, 0, 0)); } // 保存文件 @@ -128,6 +155,7 @@ public class ExportExcel { e.printStackTrace(); } } + public static void main(String[] args) { LocalMysqlConnectUtil.Init(); diff --git a/src/main/resources/Sql/ExportExcel.sql b/src/main/resources/Sql/ExportExcel.sql index 6bf7989b..b632bf31 100644 --- a/src/main/resources/Sql/ExportExcel.sql +++ b/src/main/resources/Sql/ExportExcel.sql @@ -2,28 +2,6 @@ -- 学前入园幼儿入园总量 #sql("Xqry") -- 入园总量数据查询 - (SELECT - 行政区划, - '入园数' as 类型, - '总入园数' as 分类, - MAX(IF(年份 = 2023, 总量数值, NULL)) as '2023', - MAX(IF(年份 = 2024, 总量数值, NULL)) as '2024', - MAX(IF(年份 = 2025, 总量数值, NULL)) as '2025', - MAX(IF(年份 = 2026, 总量数值, NULL)) as '2026', - MAX(IF(年份 = 2027, 总量数值, NULL)) as '2027', - MAX(IF(年份 = 2028, 总量数值, NULL)) as '2028', - MAX(IF(年份 = 2029, 总量数值, NULL)) as '2029', - MAX(IF(年份 = 2030, 总量数值, NULL)) as '2030', - MAX(IF(年份 = 2031, 总量数值, NULL)) as '2031', - MAX(IF(年份 = 2032, 总量数值, NULL)) as '2032', - MAX(IF(年份 = 2033, 总量数值, NULL)) as '2033', - MAX(IF(年份 = 2034, 总量数值, NULL)) as '2034' - FROM excel_学前幼儿入园总量_b25b1b09b0 - WHERE 总量分类 = '总入园数' - GROUP BY 行政区划) - - UNION ALL - (SELECT 行政区划, '入园数' as 类型, @@ -90,11 +68,10 @@ UNION ALL - -- 在园总量数据查询 - (SELECT + (SELECT 行政区划, - '在园数' as 类型, - '总在园数' as 分类, + '入园数' as 类型, + '总数' as 分类, MAX(IF(年份 = 2023, 总量数值, NULL)) as '2023', MAX(IF(年份 = 2024, 总量数值, NULL)) as '2024', MAX(IF(年份 = 2025, 总量数值, NULL)) as '2025', @@ -107,15 +84,16 @@ MAX(IF(年份 = 2032, 总量数值, NULL)) as '2032', MAX(IF(年份 = 2033, 总量数值, NULL)) as '2033', MAX(IF(年份 = 2034, 总量数值, NULL)) as '2034' - FROM excel_学前幼儿在园总量_c04222fd74 - WHERE 总量分类 = '总在园数' + FROM excel_学前幼儿入园总量_b25b1b09b0 + WHERE 总量分类 = '总入园数' GROUP BY 行政区划) UNION ALL + -- 在园总量数据查询 (SELECT 行政区划, - '在园数' as 类型, + '在园幼儿数' as 类型, '城区' as 分类, MAX(IF(年份 = 2023, 区域数值, NULL)) as '2023', MAX(IF(年份 = 2024, 区域数值, NULL)) as '2024', @@ -137,7 +115,7 @@ (SELECT 行政区划, - '在园数' as 类型, + '在园幼儿数' as 类型, '镇区' as 分类, MAX(IF(年份 = 2023, 区域数值, NULL)) as '2023', MAX(IF(年份 = 2024, 区域数值, NULL)) as '2024', @@ -159,7 +137,7 @@ (SELECT 行政区划, - '在园数' as 类型, + '在园幼儿数' as 类型, '乡村' as 分类, MAX(IF(年份 = 2023, 区域数值, NULL)) as '2023', MAX(IF(年份 = 2024, 区域数值, NULL)) as '2024', @@ -175,6 +153,26 @@ MAX(IF(年份 = 2034, 区域数值, NULL)) as '2034' FROM excel_学前幼儿在园总量_c04222fd74 WHERE 区域分类 = '乡村' + GROUP BY 行政区划) + UNION ALL + (SELECT + 行政区划, + '在园幼儿数' as 类型, + '总数' as 分类, + MAX(IF(年份 = 2023, 总量数值, NULL)) as '2023', + MAX(IF(年份 = 2024, 总量数值, NULL)) as '2024', + MAX(IF(年份 = 2025, 总量数值, NULL)) as '2025', + MAX(IF(年份 = 2026, 总量数值, NULL)) as '2026', + MAX(IF(年份 = 2027, 总量数值, NULL)) as '2027', + MAX(IF(年份 = 2028, 总量数值, NULL)) as '2028', + MAX(IF(年份 = 2029, 总量数值, NULL)) as '2029', + MAX(IF(年份 = 2030, 总量数值, NULL)) as '2030', + MAX(IF(年份 = 2031, 总量数值, NULL)) as '2031', + MAX(IF(年份 = 2032, 总量数值, NULL)) as '2032', + MAX(IF(年份 = 2033, 总量数值, NULL)) as '2033', + MAX(IF(年份 = 2034, 总量数值, NULL)) as '2034' + FROM excel_学前幼儿在园总量_c04222fd74 + WHERE 总量分类 = '总在园数' GROUP BY 行政区划) ORDER BY 行政区划,