李晓莉 张廉青
( 天津市交通科学研究院 天津 300074)
为了保障行业节能减排目标的实现,自2011 年,国家开始设立交通运输减排专项资金, 对开展节能减排工作的企事业单位,实行专项资金支持政策。 其中对于节能减排量可以量化的项目,依照节能减排量确定资金奖励额度。 节能减排量的核算期为1年,一般需要依据企业申报项目12 个月或不足12 个月的能耗统计台账进行核算。 对于天然气车辆、天然气港口机械等类似项目,由于车辆及港口机械数量众多,资金申请或审核过程中涉及的数据量较大, 手工计算或仅仅依靠计算器、EXCEL 进行简单的汇总统计已不能满足工作的需要。 本文结合工作实践,以天然气车辆应用项目为例,提出在节能减排专项资金申请与审核过程中采用基本的SQL 语句实现数据的处理、查询与统计。
结构化查询语言(Structured Query Language,简称SQL),是一种数据库查询和程序设计语言,用以存取数据以及查询、更新和管理关系数据库系统。 SQL 具有语言简洁、语法简单、好学好用的特点,对于略有基础的人即可实现上手快、随学随用的目的,因此在实际工作过程中具有较高的实用性。
本文以天然气车辆应用项目为例,探讨在交通运输节能减排专项资金申请与审核过程中采用SQL 的必要性。
天然气车辆应用项目节能减排专项资金的申请与审核具有如下特点:
2.1 对于大型的客货运企业, 一般有成百上千台天然气车同时参与申报,而对于申报了绿色交通省和绿色交通城市的省市,因为具有3 年( 绿色交通城市)或4 年( 绿色交通省)的实施期,企业参与申报的天然气车数量会更大。
2.2 成百上千台天然气车辆一年或数月的能耗统计台账数据量较大,依据人工计算或者基本的EXCEL 运算,工作量大、效率低,而且准确性无法保障。
2.3 大型的客货运企业,一般拥有多个子公司或运输队,若是企业缺乏规范、统一的管理,可能导致不同子公司或运输队之间提交的能耗统计数据格式上有所差异,这给数据核算带来了额外的难度,手动处理效率极低。
2.4 天然气车辆应用项目专项资金的申请、 第三方审核和专家评审,一般时间较为紧张,需要有更为自动化的数据处理手段来保证工作的效率及其准确性。
通过以上分析可知,在天然气车辆及其类似项目节能减排资金的申请与审核过程中,需要更为简单、高效且准确性高的数据处理工具和方法来保证工作的顺利开展。 SQL 以其简单实用的优势,可以大大降低人工劳动强度、提高工作效率和准确性,具有较高的应用价值。
本文以在ACCESS 中进行数据处理、查询、统计为例,说明SQL 在天然气车辆应用项目交通运输节能减排专项资金申请与审核中的应用。 涉及的主要步骤如下:
3.1 创建ACCESS 空白数据库。
3.2 导入外部数据, 将所需的数据从其他Access 或Excel 文档导入创建的数据库。
3.3 数据预处理。 当原始数据中的关键字段存在格式不统一时,如存在车牌号或( 和)统计年月表达不一致的情况时( 如表1 所示),为了计算的准确性以及数据格式的规范化,需要对关键字段的数据进行预处理。
表1 营运客车燃料消耗及行程月度统计表( 原始)
3.3.1 统一“ 车牌号”数据格式
采用下面的SQL 语句可以统一车牌号的格式( 统一为XX-xxxxx 形式),并将统一车牌号的数据复制到新表b 中:
select*into b from(select a.序号,(left(a.车牌号,2)+'-'+right(a.车牌号,5))as 车牌号,a.车长,a.车辆等级,a.统计年月,a.月度气耗量,a.月度行程from a)。
3.3.2 统一“ 统计年月”数据格式
对“ 统计年月”格式的统一,可以采用先拆后合的思想,也即是先将两种格式的数据分别提取出来, 将其中一种格式修改后,再将两部分数据合并在一起。
如,以末尾字符是否为“ 月”,可以将两种格式的数据分离开来。采用下面的SQL 语句可以将“ yyyy.mm”这种格式的数据复制到新表c 中:
select*into c from(select b.序号,b.车牌号,b.车长,b.车辆等级,b.统计年月,b.月度气耗量,b.月度行程from b where right(b.统计年月,1)<>' 月')。
将条件子句改为where right (b. 统计年月,1)=' 月' 则可以将“ yyyy 年mm 月”形式的数据复制到另外的表中,如表d。
本文中,我们将“ 统计年月”统一为“ yyyy 年mm 月” 的数据格式,首先需要在表c 中“ 统计年月”字段的末尾添加字符“ 月”,而后将年份后面的“ .”字符换成“ 年”字符。 采用如下的SQL 语句可以实现上述功能:
select e.序号,e.车牌号,e.车长,e.车辆等级,left(e.统计年月,4)+' 年'+mid(e.统计年月,6)as 统计年月,e.月度气耗量,e.月度行程from(select c.序号,c.车牌号,c.车长,c.车辆等级,c.统计年月+' 月'as 统计年月,c.月度气耗量,c.月度行程from c)e。
将修改后的数据与表d 中数据合并在一起,即可形成规范后的数据表,如表2 所示,将处理后的数据表命名为表f。
表2 营运客车燃料消耗及行程月度统计表( 处理后)
3.4 月均行程、月均气耗量以及单耗( 百公里气耗量)的计算
依据处理后的天然气车辆燃料消耗及行程月度统计表,采用如下的SQL 可以快速计算每台天然气车辆的月均行程及月均气耗量,进而求得单耗值,并将数据复制到新表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 年版“ 天然气车辆应用项目节能减排量核算技术细则”中规定,对于“ 月均行程”的超标判断,用同类车辆( 营运客车、营运货车、城市公交车、出租车等)“ 月均行程”的平均值对照参考值进行超标判断。 当“ 月均行程”平均值大于参考值时,用参考值对“ 月均行程”进行更新。 采用如下的SQL,可以实现该功能( 以营运客车月均行驶里程的参考值为14000km 为例):
update g set g.月均行程=14000 where(select avg(g.月均行程)from g)>14000
3.5.2 “ 单耗”超标判断
2015 年版“ 天然气车辆应用项目节能减排量核算技术细则”中规定,对于“ 单耗”的超标判断,用同一车型“ 单耗”的平均值对照该车型的参考值进行超标判断( 城市公交车除外)。 对平均单耗的超标判断及处理分为如下三个步骤进行:
( 1)计算特定车型( 车长和车辆等级)单耗平均值
以营运客车( 表2 中数据)为例,其“ 单耗”参考值与车长和车辆等级密切相关,采用如下的SQL 语句即可计算相应车长与对应车辆等级的“ 单耗”平均值,并将相应数据复制粘贴至表h 中:
select*into h from(select g.车长,g.车辆等级,avg(g.单耗)as 平均单耗from g group by g.车长,g.车辆等级)
将表h 中数据与参考值数据表( 命名为表k)进行比对,为便于处理,参考值数据表可以修改成如表3 的形式。
表3 修改格式后的营运客车单耗参考值示意表
( 2)平均单耗超标判断并更新
当平均单耗值超标时,采用单耗参考值对相应车型( 车长及车辆等级)的平均单耗进行更新,可采用如下的SQL:
update h,k set h.平均单耗=k.单耗where h.车长=k.车长and h.车辆等级=k.车辆等级and h.平均单耗>k.单耗
( 3)更新月均数据表( 表g)
update g,h set g.单耗=h.平均单耗where g.车长=h.车长and g.车辆等级=h.车辆等级
至此,对行程和单耗的超标判断与更新进行完毕,可以直接计算项目的年总气耗量:
select sum(g.月均行程*g.单耗/100*12)as 年总气耗from g
通过SQL 在节能减排专项资金申请与申请过程中的应用实践,可以得出如下的结论:( 1)对于天然气车辆数量较多的项目,采用SQL 能大大提高数据处理效率和准确性, 降低人工劳动强度。( 2)SQL 具有好学好用的特点,对于略有基础的非程序设计人员,可以快速上手。( 3)天然气车辆应用项目节能减排专项资金的申请与审核过程中, 对于SQL 的应用仅涉及select、where、group by、order by 等基本语句以及avg()函数和简单的乘除法,非专业程序设计人员通过简单学习完全可以胜任。( 4)目前在天然气车辆应用项目的专家评审阶段,对于替代燃料量的核算,一般采用抽查的方式, 依赖计算器对抽查车辆的月度统计数据进行核算,这种方式无法保证核查的全面性,更是对人的体力和精力提出了较大的挑战。
( 1)从事节能减排专项资金申请和审核的相关单位,可以通过培训或内部学习的方式有意识地培养本企业相关人员具备基本的SQL 编写技能,以适应业务发展的需要。( 2)参与节能减排专项资金申请与审核过程的具体人员,在工作过程中,应善于思考,综合运用多种办公软件和工具,寻求更为高效、准确的工作方式和方法。参考文献
[1]车辆购置税收入补助地方资金支持交通运输节能减排项目节能减排量或投资额核算技术细则.2015.