李曉莉 張廉青
( 天津市交通科學研究院 天津 300074)
為了保障行業(yè)節(jié)能減排目標的實現(xiàn),自2011 年,國家開始設立交通運輸減排專項資金, 對開展節(jié)能減排工作的企事業(yè)單位,實行專項資金支持政策。 其中對于節(jié)能減排量可以量化的項目,依照節(jié)能減排量確定資金獎勵額度。 節(jié)能減排量的核算期為1年,一般需要依據(jù)企業(yè)申報項目12 個月或不足12 個月的能耗統(tǒng)計臺賬進行核算。 對于天然氣車輛、天然氣港口機械等類似項目,由于車輛及港口機械數(shù)量眾多,資金申請或?qū)徍诉^程中涉及的數(shù)據(jù)量較大, 手工計算或僅僅依靠計算器、EXCEL 進行簡單的匯總統(tǒng)計已不能滿足工作的需要。 本文結(jié)合工作實踐,以天然氣車輛應用項目為例,提出在節(jié)能減排專項資金申請與審核過程中采用基本的SQL 語句實現(xiàn)數(shù)據(jù)的處理、查詢與統(tǒng)計。
結(jié)構(gòu)化查詢語言(Structured Query Language,簡稱SQL),是一種數(shù)據(jù)庫查詢和程序設計語言,用以存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng)。 SQL 具有語言簡潔、語法簡單、好學好用的特點,對于略有基礎的人即可實現(xiàn)上手快、隨學隨用的目的,因此在實際工作過程中具有較高的實用性。
本文以天然氣車輛應用項目為例,探討在交通運輸節(jié)能減排專項資金申請與審核過程中采用SQL 的必要性。
天然氣車輛應用項目節(jié)能減排專項資金的申請與審核具有如下特點:
2.1 對于大型的客貨運企業(yè), 一般有成百上千臺天然氣車同時參與申報,而對于申報了綠色交通省和綠色交通城市的省市,因為具有3 年( 綠色交通城市)或4 年( 綠色交通?。┑膶嵤┢?,企業(yè)參與申報的天然氣車數(shù)量會更大。
2.2 成百上千臺天然氣車輛一年或數(shù)月的能耗統(tǒng)計臺賬數(shù)據(jù)量較大,依據(jù)人工計算或者基本的EXCEL 運算,工作量大、效率低,而且準確性無法保障。
2.3 大型的客貨運企業(yè),一般擁有多個子公司或運輸隊,若是企業(yè)缺乏規(guī)范、統(tǒng)一的管理,可能導致不同子公司或運輸隊之間提交的能耗統(tǒng)計數(shù)據(jù)格式上有所差異,這給數(shù)據(jù)核算帶來了額外的難度,手動處理效率極低。
2.4 天然氣車輛應用項目專項資金的申請、 第三方審核和專家評審,一般時間較為緊張,需要有更為自動化的數(shù)據(jù)處理手段來保證工作的效率及其準確性。
通過以上分析可知,在天然氣車輛及其類似項目節(jié)能減排資金的申請與審核過程中,需要更為簡單、高效且準確性高的數(shù)據(jù)處理工具和方法來保證工作的順利開展。 SQL 以其簡單實用的優(yōu)勢,可以大大降低人工勞動強度、提高工作效率和準確性,具有較高的應用價值。
本文以在ACCESS 中進行數(shù)據(jù)處理、查詢、統(tǒng)計為例,說明SQL 在天然氣車輛應用項目交通運輸節(jié)能減排專項資金申請與審核中的應用。 涉及的主要步驟如下:
3.1 創(chuàng)建ACCESS 空白數(shù)據(jù)庫。
3.2 導入外部數(shù)據(jù), 將所需的數(shù)據(jù)從其他Access 或Excel 文檔導入創(chuàng)建的數(shù)據(jù)庫。
3.3 數(shù)據(jù)預處理。 當原始數(shù)據(jù)中的關(guān)鍵字段存在格式不統(tǒng)一時,如存在車牌號或( 和)統(tǒng)計年月表達不一致的情況時( 如表1 所示),為了計算的準確性以及數(shù)據(jù)格式的規(guī)范化,需要對關(guān)鍵字段的數(shù)據(jù)進行預處理。
表1 營運客車燃料消耗及行程月度統(tǒng)計表( 原始)
3.3.1 統(tǒng)一“ 車牌號”數(shù)據(jù)格式
采用下面的SQL 語句可以統(tǒng)一車牌號的格式( 統(tǒng)一為XX-xxxxx 形式),并將統(tǒng)一車牌號的數(shù)據(jù)復制到新表b 中:
select*into b from(select a.序號,(left(a.車牌號,2)+'-'+right(a.車牌號,5))as 車牌號,a.車長,a.車輛等級,a.統(tǒng)計年月,a.月度氣耗量,a.月度行程from a)。
3.3.2 統(tǒng)一“ 統(tǒng)計年月”數(shù)據(jù)格式
對“ 統(tǒng)計年月”格式的統(tǒng)一,可以采用先拆后合的思想,也即是先將兩種格式的數(shù)據(jù)分別提取出來, 將其中一種格式修改后,再將兩部分數(shù)據(jù)合并在一起。
如,以末尾字符是否為“ 月”,可以將兩種格式的數(shù)據(jù)分離開來。采用下面的SQL 語句可以將“ yyyy.mm”這種格式的數(shù)據(jù)復制到新表c 中:
select*into c from(select b.序號,b.車牌號,b.車長,b.車輛等級,b.統(tǒng)計年月,b.月度氣耗量,b.月度行程from b where right(b.統(tǒng)計年月,1)<>' 月')。
將條件子句改為where right (b. 統(tǒng)計年月,1)=' 月' 則可以將“ yyyy 年mm 月”形式的數(shù)據(jù)復制到另外的表中,如表d。
本文中,我們將“ 統(tǒng)計年月”統(tǒng)一為“ yyyy 年mm 月” 的數(shù)據(jù)格式,首先需要在表c 中“ 統(tǒng)計年月”字段的末尾添加字符“ 月”,而后將年份后面的“ .”字符換成“ 年”字符。 采用如下的SQL 語句可以實現(xiàn)上述功能:
select e.序號,e.車牌號,e.車長,e.車輛等級,left(e.統(tǒng)計年月,4)+' 年'+mid(e.統(tǒng)計年月,6)as 統(tǒng)計年月,e.月度氣耗量,e.月度行程from(select c.序號,c.車牌號,c.車長,c.車輛等級,c.統(tǒng)計年月+' 月'as 統(tǒng)計年月,c.月度氣耗量,c.月度行程from c)e。
將修改后的數(shù)據(jù)與表d 中數(shù)據(jù)合并在一起,即可形成規(guī)范后的數(shù)據(jù)表,如表2 所示,將處理后的數(shù)據(jù)表命名為表f。
表2 營運客車燃料消耗及行程月度統(tǒng)計表( 處理后)
3.4 月均行程、月均氣耗量以及單耗( 百公里氣耗量)的計算
依據(jù)處理后的天然氣車輛燃料消耗及行程月度統(tǒng)計表,采用如下的SQL 可以快速計算每臺天然氣車輛的月均行程及月均氣耗量,進而求得單耗值,并將數(shù)據(jù)復制到新表g 中:
select*into g from(select f.車牌號,f.車長,f.車輛等級,avg(f.月度行程)as 月均行程,avg(f.月度氣耗量)as 月均氣耗量,(avg(f.月度氣耗量)/avg(f.月度行程))*100 as 單耗from f group by 車牌號,車長,車輛等級)
3.5 超標判斷
3.5.1 “ 月均行程”超標判斷
2015 年版“ 天然氣車輛應用項目節(jié)能減排量核算技術(shù)細則”中規(guī)定,對于“ 月均行程”的超標判斷,用同類車輛( 營運客車、營運貨車、城市公交車、出租車等)“ 月均行程”的平均值對照參考值進行超標判斷。 當“ 月均行程”平均值大于參考值時,用參考值對“ 月均行程”進行更新。 采用如下的SQL,可以實現(xiàn)該功能( 以營運客車月均行駛里程的參考值為14000km 為例):
update g set g.月均行程=14000 where(select avg(g.月均行程)from g)>14000
3.5.2 “ 單耗”超標判斷
2015 年版“ 天然氣車輛應用項目節(jié)能減排量核算技術(shù)細則”中規(guī)定,對于“ 單耗”的超標判斷,用同一車型“ 單耗”的平均值對照該車型的參考值進行超標判斷( 城市公交車除外)。 對平均單耗的超標判斷及處理分為如下三個步驟進行:
( 1)計算特定車型( 車長和車輛等級)單耗平均值
以營運客車( 表2 中數(shù)據(jù))為例,其“ 單耗”參考值與車長和車輛等級密切相關(guān),采用如下的SQL 語句即可計算相應車長與對應車輛等級的“ 單耗”平均值,并將相應數(shù)據(jù)復制粘貼至表h 中:
select*into h from(select g.車長,g.車輛等級,avg(g.單耗)as 平均單耗from g group by g.車長,g.車輛等級)
將表h 中數(shù)據(jù)與參考值數(shù)據(jù)表( 命名為表k)進行比對,為便于處理,參考值數(shù)據(jù)表可以修改成如表3 的形式。
表3 修改格式后的營運客車單耗參考值示意表
( 2)平均單耗超標判斷并更新
當平均單耗值超標時,采用單耗參考值對相應車型( 車長及車輛等級)的平均單耗進行更新,可采用如下的SQL:
update h,k set h.平均單耗=k.單耗where h.車長=k.車長and h.車輛等級=k.車輛等級and h.平均單耗>k.單耗
( 3)更新月均數(shù)據(jù)表( 表g)
update g,h set g.單耗=h.平均單耗where g.車長=h.車長and g.車輛等級=h.車輛等級
至此,對行程和單耗的超標判斷與更新進行完畢,可以直接計算項目的年總氣耗量:
select sum(g.月均行程*g.單耗/100*12)as 年總氣耗from g
通過SQL 在節(jié)能減排專項資金申請與申請過程中的應用實踐,可以得出如下的結(jié)論:( 1)對于天然氣車輛數(shù)量較多的項目,采用SQL 能大大提高數(shù)據(jù)處理效率和準確性, 降低人工勞動強度。( 2)SQL 具有好學好用的特點,對于略有基礎的非程序設計人員,可以快速上手。( 3)天然氣車輛應用項目節(jié)能減排專項資金的申請與審核過程中, 對于SQL 的應用僅涉及select、where、group by、order by 等基本語句以及avg()函數(shù)和簡單的乘除法,非專業(yè)程序設計人員通過簡單學習完全可以勝任。( 4)目前在天然氣車輛應用項目的專家評審階段,對于替代燃料量的核算,一般采用抽查的方式, 依賴計算器對抽查車輛的月度統(tǒng)計數(shù)據(jù)進行核算,這種方式無法保證核查的全面性,更是對人的體力和精力提出了較大的挑戰(zhàn)。
( 1)從事節(jié)能減排專項資金申請和審核的相關(guān)單位,可以通過培訓或內(nèi)部學習的方式有意識地培養(yǎng)本企業(yè)相關(guān)人員具備基本的SQL 編寫技能,以適應業(yè)務發(fā)展的需要。( 2)參與節(jié)能減排專項資金申請與審核過程的具體人員,在工作過程中,應善于思考,綜合運用多種辦公軟件和工具,尋求更為高效、準確的工作方式和方法。參考文獻
[1]車輛購置稅收入補助地方資金支持交通運輸節(jié)能減排項目節(jié)能減排量或投資額核算技術(shù)細則.2015.