胡華彬
摘要:論文主要針對高等學(xué)校統(tǒng)計報表的填報需求,探討了人工填報和利用SQL自動生成統(tǒng)計報表兩種方法,并重點以高基報表為例詳細研究了利用SQL自動生成統(tǒng)計報表的方法,比較了兩種方法在工作效率上的巨大差別。論文最后指出利用SQL自動生成統(tǒng)計報表的方法需要重點注意的問題。
Abstract: Papers mainly for the reporting needs of colleges and universities statistical reports, discusses the manual reporting and the use of SQL to generate statistical reports automatically two methods, and focus on high-base reports as an example for a detailed study of the use of SQL to automatically generate statistical reports, compared the vast difference in efficiency of two methods. Finally, the paper points out the two problems that need to pay attention to automatically generate statistical reports using SQL.
關(guān)鍵詞:高等學(xué)校;統(tǒng)計報表;SQL;自動生成
Key words: colleges and universities;statistical reports;SQL;automatic generation
中圖分類號:TP311.1 文獻標識碼:A 文章編號:1006-4311(2018)17-0229-02
0 引言
高等學(xué)校每學(xué)年所需要填報的綜合類報表主要有高等教育事業(yè)基層統(tǒng)計報表(以下簡稱“高基報表”)和高等職業(yè)院校人才培養(yǎng)工作狀態(tài)數(shù)據(jù)采集系列報表(高等職業(yè)院校需要填報)。
下面以高基報表中比較復(fù)雜的《普通專科分專業(yè)學(xué)生數(shù)》(高基311)為例探討準確、高效的填報方法。
1 準備工作
1.1 了解填報高基報表原則、填報要求等
首先要了解填報高基報表原則。高基報表的數(shù)據(jù)是教育部核定各高?;巨k學(xué)條件的主要依據(jù),直接關(guān)系到高校辦學(xué)規(guī)模核定、招生計劃制定、財政經(jīng)費撥付和項目申報等。填報工作要堅持實事求是的原則,做到每個數(shù)據(jù)都有相應(yīng)的支撐,保證所有填報數(shù)據(jù)準確、真實、可查。
其次要認真學(xué)習(xí)填報要求。高基報表填報說明中對每張報表涉及的指標均有明確的指標解釋,填報前需要認真閱讀《高等教育學(xué)校(機構(gòu))統(tǒng)計報表填報說明》,按照指標解釋的內(nèi)涵,準確、完整地填報。統(tǒng)計時段為上一年9月1日至本年8月31日,統(tǒng)計時點為本年度9月1日。各部門所填報內(nèi)容務(wù)必與上一年數(shù)據(jù)保持連續(xù)性和一致性,本年度主要數(shù)據(jù)增減比例過大的,須書面說明原因。
1.2 確定使用統(tǒng)計工具和統(tǒng)計方法
一般來說,主要有手工填報方式和自動生成報表方式兩種。
手工填報即安裝好教育統(tǒng)計系統(tǒng)軟件后,直接登錄軟件,打開某一具體的空報表,手工編輯事先統(tǒng)計好了的數(shù)據(jù)并保存。對基礎(chǔ)數(shù)據(jù)的統(tǒng)計既可以用EXCEL的分類匯總或數(shù)據(jù)透視表進行,也可以在數(shù)據(jù)庫中使用SQL查詢語句逐一實現(xiàn)。該方法的優(yōu)點是簡單易學(xué);缺點是效率不高,數(shù)據(jù)需要一項一項填寫,耗費時間不說,如有錄入錯誤,校驗出來后還需要花費時間和精力查找錯誤予以改正。
自動生成報表方式是直接在數(shù)據(jù)庫中利用SQL語句實現(xiàn)生成統(tǒng)計報表,然后將統(tǒng)計報表數(shù)據(jù)數(shù)據(jù)導(dǎo)入到教育統(tǒng)計系統(tǒng)中。該方法的優(yōu)點是填報效率高,不會產(chǎn)生手工錄入之類的錯誤,校驗易通過,可極大程度地節(jié)省時間;缺點是填報人需要相當熟練的掌握數(shù)據(jù)庫操作知識和技能,針對每一張報表都需要首先生成統(tǒng)計報表模板(或?qū)肽0澹┰倮肧QL語句統(tǒng)計。
1.3 規(guī)范基礎(chǔ)性數(shù)據(jù)
從某種程度上來說,雖然規(guī)范基礎(chǔ)性數(shù)據(jù)實際上是一項日常性工作,但是在統(tǒng)計前還是需要把統(tǒng)計涉及到的各項基礎(chǔ)數(shù)據(jù)字段做一次檢查校驗,以避免在得到統(tǒng)計結(jié)果進行校驗后才發(fā)基礎(chǔ)數(shù)據(jù)缺失或不規(guī)范而造成大量返工的工作量。
2 以《普通??品謱I(yè)學(xué)生數(shù)》(高基311)為例自動生成報表統(tǒng)計法
2.1 設(shè)計或?qū)搿陡呋?11》的統(tǒng)計模板
首先需要對《高基311》報表的表格做適當修改,以生成統(tǒng)計模板。《高基311》表頭樣式如表1所示。
創(chuàng)建有如下字段的數(shù)據(jù)表(GJ311B)格式:學(xué)科、專業(yè)分類、專業(yè)名稱、自主專業(yè)名稱、專業(yè)代碼、是否師范專業(yè)、年制、畢業(yè)生數(shù)、招生數(shù)合計、其中應(yīng)屆畢業(yè)生、其中春季招生、其中預(yù)科生轉(zhuǎn)入、在校生數(shù)合計、在校生數(shù)一年級、在校生數(shù)二年級、在校生數(shù)三年級、在校生數(shù)四年級及以上、預(yù)計畢業(yè)生數(shù)等。
在PL/SQL Developer中,向數(shù)據(jù)表(GJ311B)插入上一年度的《高基311》數(shù)據(jù)記錄,并將所有數(shù)據(jù)值清零,形成統(tǒng)計模板,如表2。
例如將各專業(yè)的畢業(yè)生數(shù)清零SQL語句如下:
Update GJ311B set畢業(yè)生數(shù)=null
并將已經(jīng)數(shù)值清零的數(shù)據(jù)表復(fù)制一份備用:
Create table GJ311B2 as select * from GJ311B
2.2 逐字段更新數(shù)據(jù)
《高基311》的統(tǒng)計數(shù)據(jù)來自學(xué)生基本信息表(xsjbxxb),包含學(xué)號,姓名、性別,身份證號碼,學(xué)院,專業(yè)名稱,專業(yè)代碼,班級,當前所在級,學(xué)制等字段。
如果以學(xué)制為3年制,學(xué)生類型為“高中起點??啤?,2017年9月進行統(tǒng)計為例,那么更新畢業(yè)生數(shù)統(tǒng)計數(shù)據(jù)的SQL語句如下:
update GJ311B a set 畢業(yè)生數(shù)=(select 畢業(yè)生數(shù)from (select 專業(yè)代碼,count(*) as 畢業(yè)生數(shù) from xsjbxxb where xslx in ('高中起點???) and dqszj in ('2014') group by專業(yè)代碼) b where a.專業(yè)代碼=b.專業(yè)代碼)
其他字段如“招生數(shù)合計”、“在校生數(shù)一年級”等的數(shù)值統(tǒng)計方法依此類推即可。
高中起點??聘骱嫌嫏诮y(tǒng)計的SQL語句如下:
update GJ311B set 畢業(yè)生數(shù)=(select sum(畢業(yè)生數(shù)) from GJ311B ) where專業(yè)代碼in ('41101')
2.3 巧妙處理相同專業(yè)包括多種類別學(xué)生的統(tǒng)計問題
在《高基311》中因為同一專業(yè)名稱“對口招收中職生”的專業(yè)代碼與“高中起點??啤钡膶I(yè)代碼是相同的,所以需要先分開統(tǒng)計,然后再合并到同一張統(tǒng)計報表中。
在備用統(tǒng)計報表GJ311B2中,先統(tǒng)計對口招收中職生的數(shù)據(jù):
update GJ311B2 a set 畢業(yè)生數(shù)=(select 畢業(yè)生數(shù)from (select 專業(yè)代碼,count(*) as 畢業(yè)生數(shù) from xsjbxxb where xslx in ('對口招收中職生') and dqszj in ('2014') group by專業(yè)代碼) b where a.專業(yè)代碼=b.專業(yè)代碼)
對口招收中職生合計欄統(tǒng)計的SQL語句如下:
update GJ311B2 set 畢業(yè)生數(shù)=(select sum(畢業(yè)生數(shù)) from GJ311B2 ) where專業(yè)代碼in ('41102')
再合并統(tǒng)計結(jié)果:Insert into GJ311B select * from GJ311B2
2.4 各類別的總合計數(shù)統(tǒng)計
統(tǒng)計任務(wù)包括“普通??粕?1100)”和“其中:女(411002)”兩條記錄的各數(shù)據(jù)項求值。統(tǒng)計“普通??粕?1100)”既可以直接在《高基311》對各記錄求和,也可以在學(xué)生基本信息表(xsjbxxb)中統(tǒng)計。
還是以畢業(yè)生數(shù)的統(tǒng)計為例,其SQL語句如下:
2.4.1 直接在《高基311》對各記錄求和:
update GJ311B set 畢業(yè)生數(shù)=(select sum(畢業(yè)生數(shù)) from GJ311B where substr(專業(yè)代碼,1,3) not in (‘411)) where專業(yè)代碼in ('41100').
2.4.2 在學(xué)生基本信息表(xsjbxxb)中統(tǒng)計:
update GJ311B set 畢業(yè)生數(shù)=(select count(*) from xsjbxxb where dqszj in ('2014')) where 專業(yè)代碼 in ('411002')
2.4.3 統(tǒng)計“其中:女(411002)”
update GJ311B set 畢業(yè)生數(shù)=(select count(*) from xsjbxxb where dqszj in ('2014') and 性別 in (‘女)) where 專業(yè)代碼 in ('411002')
將以上統(tǒng)計語句編入程序,下一年度只須替換學(xué)生基本信息表(xsjbxxb)和更改統(tǒng)計時間點等參數(shù),即可實現(xiàn)迅速得出統(tǒng)計報表。
3 自動生成統(tǒng)計報表效果分析
實踐證明,以我校辦學(xué)規(guī)模(在校生約13000人,專業(yè)數(shù)量不到30個,學(xué)生來源類型分高中起點??坪蛯谡惺罩新毶鷥煞N)手工填報高基報表中與學(xué)籍管理相關(guān)的7張報表,要達到校驗完全正確,一般需要大約五個工作日。整個統(tǒng)計報表工作的工作量會隨著在校生人數(shù)、專業(yè)數(shù)量等的增多而增大。
而采用自動生成統(tǒng)計報表方式統(tǒng)計,包括生成報表模板的時間,完成整個統(tǒng)計系列報表只需要半天,即可達到校驗完全正確。如果是直接利用往年已經(jīng)使用過的程序和模板,那就只須更換學(xué)生基本信息表和更改統(tǒng)計時間點等參數(shù),更是可以在一小時內(nèi)完成整個統(tǒng)計報表工作,效率提高數(shù)十倍。
4 結(jié)束語
自動生成統(tǒng)計報表方式有兩個重點,一個是基本數(shù)據(jù)信息表(比如上面提到的學(xué)生基本信息表)的日常維護要盡可能規(guī)范,這是一切統(tǒng)計工作的基礎(chǔ);二是各種統(tǒng)計報表模板的初次生成和反復(fù)利用,只要統(tǒng)計的內(nèi)容要求沒有大的變化,那么模板可以也應(yīng)該多次反復(fù)使用,以提高完成統(tǒng)計報表工作的效率。
參考文獻:
[1]鄒艷.高??萍冀y(tǒng)計工作存在的問題與對策——以全國普通高等學(xué)校理工農(nóng)醫(yī)類科技統(tǒng)計年報表為例[J].課程教育研究,2017(20).
[2]冷秋穎,李金寶.VBA編程在統(tǒng)計報表中的應(yīng)用研究[J].吉林師范大學(xué)學(xué)報(自然科學(xué)版),2010(3).
[3]張戰(zhàn)虎.統(tǒng)計信息工作在高校精細化管理中的作用[J].人間,2015(16).