[摘要] 由于现在审计部门使用的现场审计实施系统并无导入往来辅助帐进入财务三张表功能,不便于审计人员对往来明细科目的查找和分析,现以财政informix数据为例将往来辅助账通过Microsoft SQL Server插入财务三张表中,最终使得AO中有往来明细账。
[关键字] 财政 informix 往来 SQL
省县(区)财会核算中心支付软件(V2005),是由湖南湘基利得财务有限公司开发,爱普科技有限公司定制维护,目前在我省80%以上的县(区)会计核算中心使用的专用会计核算支付软件。该软件后台数据库为informix数据库,后台操作系统平台为UNIX系统。一般情况下,审计机关的服务器操作平台都是WENDOWS系统。为此,我们在设计对县(区)财政会计核算中心联网审计方案时,采取的方法是:通过VNP虚拟网络方式,采取隧道加密机制与财政会计核算中心服务器实现网络连接。在审计局端安装informix数据库客户端infromix-cli(也可理解为infromix驱动程序),通过配置客户端以便取得与对方(会计核算中心)数据库的数据连接,再在审计局端通过ODBC采集财政数据。在取得财政数据的基础上,利用客户端已安装的SQL-Server数据库软件分析财政数据,并通过必要的数据清理和整合,得到符合AO软件转换类型的数据源数据,再将该数据应用AO软件进行采集转换,最终形成完整的电子账套供审计人员分析审核。
采集财政informix数据具体操作步骤与方法可参考安徽省审计厅金礼明老师的文章或其他相关文章,笔者不对采集和转换数据进行分析,只是对informix数据中往来表的处理,并将财务三张表导入AO进行分析和处理。
一、将ACESS数据库的数据导入SQL-Server数据库
把一个年度的所有表导入ACESS数据库,共有186张表,将单位名称表dbo.informix_pub_dw、单位往来明细表 dbo.informix_zw_dwwlmx、个人往来明细表dbo.informix_zw_grwlmx、结转凭证表dbo.informix_zw_jzpz、科目表dbo.informix_zw_kmb、科目汇总表dbo.informix_zw_kmhz、凭证库明细表dbo.informix_zw_pzmxls、单位往来名称表dbo.informix_zw_wldw、个人往来名称表dbo.informix_zw_wlgr共9张表导入SQL-Server数据库中。
二、对财务三张表进行处理
这里选取的单位是教育局,找出教育局的代码为F04
select * from dbo.informix_pub_dw where dwmc like '%教育局%'
1.对科目表进行分析和处理
select * from dbo.informix_zw_kmb where dwdm='f04'----- 科目表dbo.informix_zw_kmb中教育局的记录共199行,表示有199个科目
select distinct len(kmdm) from dbo.informix_zw_kmb where dwdm='f04'-----找出科目代码的长度规则为3-2-2-2
select distinct kmdm from dbo.informix_zw_dwwlmx where dwdm='f04' -----找出往来科目代码为110,203,207三个科目
select distinct len(wldw) from dbo.informix_zw_wldw where dwdm='f04'-----找出往来单位长度为4位
select * from dbo.informix_zw_wlgr where dwdm='f04'-----往来个人不存在,不需处理
这里需要将dbo.informix_zw_kmb科目表中的二级科目长度由2位增至4位,保持会计科目长度规则的一致性。
select kmdm,kmmc,yefx into temp1 from dbo.informix_zw_kmb where dwdm='f04' and len(kmdm)=3-----对科目长度为3的记录42条进行分开处理
select kmdm=left(kmdm,3)+'00'+right(kmdm,len(kmdm)-3),kmmc,yefx into temp2 from dbo.informix_zw_kmb where dwdm='f04' and len(kmdm)>3-----对科目长度大于3的记录进行处理,将二级明细科目前添加两位‘00’,共157行
select wldw='110'+wldw,dwmc,yefx=0 into km110 from dbo.informix_zw_wldw where dwdm='f04'-----将往来单位的4位编码作为往来会计科目110的二级科目,并把一级科目代码与编码合并
select wldw='203'+wldw,dwmc,yefx=1 into km203 from dbo.informix_zw_wldw where dwdm='f04'-----将往来单位的4位编码作为往来会计科目203的二级科目,并把一级科目代码与编码合并
select wldw='207'+wldw,dwmc,yefx=1 into km207 from dbo.informix_zw_wldw where dwdm='f04'-----将往来单位的4位编码作为往来会计科目207的二级科目,并把一级科目代码与编码合并
select * into 教育局km2005 from temp1
union
select * from temp2
union
select * from km110
union
select * from km203
union
select * from km207
-----合并5张表得到教育局科目表
2.对余额表进行分析和处理
select kmdm,sum(ye) from dbo.informix_zw_dwwlmx where dwdm='f04' group by kmdm-----查看往来科目一级科目金额
select kmdm,ncye into temp3 from dbo.informix_zw_kmhz where dwdm='f04'and yf='01' and len(kmdm)=3-----将科目汇总表中1月份的科目代码为3位的代码和年初余额字段选出建立一张临时表
select kmdm=left(kmdm,3)+'00'+right(kmdm,len(kmdm)-3),ncye into temp4 from dbo.informix_zw_kmhz where dwdm='f04'and yf='01' and len(kmdm)>3-----将科目汇总表中1月份的科目代码大于3位的代码和年初余额字段选出建立一张临时表
select kmdm=kmdm+wldw,ncye=ye into temp5 from dbo.informix_zw_dwwlmx where dwdm='f04' and yf=00-----将往来单位明细表中的往来单位科目代码和年初余额字段选出建立一张临时表
select left(kmdm,3),sum(ncye) from temp5 group by left(kmdm,3) -----验证往来单位年初余额明细表中的金额是否等于科目汇总表中往来科目的金额,经验证相等
select * into yue from temp3
union
select * from temp4
union
select * from temp5-----合并3张临时表,得到一张缺少余额方向字段的临时表yue
select a.kmdm,a.ncye,b.yefx into 教育局yue2005 from yue a,教育局km2005 b where a.kmdm=b.kmdm-----将教育局km2005这张科目表余额方向字段导入余额表中
3.对凭证库表进行分析和处理
select * from informix_zw_pzmxls where dwdm='f04' order by jzrq,pzfh-----查看教育局12月份最后一张凭证号为70
select pzfh=
case
when pzfh=0001 then '0071'
when pzfh=0002 then '0072'
when pzfh=0003 then '0073'
when pzfh=0004 then '0074'
when pzfh=0005 then '0075'
end
,zy,kmdm,jje,dje,jzrq into temp6 from dbo.informix_zw_jzpz where dwdm='f04'
and year(jzrq)= 2005 order by jzrq-----对结转凭证dbo.informix_zw_jzpz 中12月份结转凭证的凭证号经处理
update temp6 set kmdm=left(kmdm,3)+'00'+right(kmdm,len(kmdm)-3) where len(kmdm)>3-----更新结转凭证临时表中科目代码大于3的科目代码,将二级科目前加“00”
select * into temp7 from informix_zw_pzmxls where dwdm='f04' and year(jzrq)= 2005 order by jzrq-----将凭证库明细表中教育局的凭证建立一张临时表
select * from temp7 where wldw is not null and wlgr is not null-----验证往来明细表中是否同时出现wldw和wlgr字段,经验证没有
update temp7 set kmdm=left(kmdm,3)+'00'+right(kmdm,len(kmdm)-3) where len(kmdm)>3-----更新主凭证明细中科目代码大于3的科目代码,将二级科目前加“00”
update temp7 set kmdm=
case
when wldw is not null then kmdm+wldw
when wlgr is not null then kmdm+wlgr
end
where kmdm='110' or kmdm='203' or kmdm='207'
select pzfh,zy,kmdm,jje,dje,jzrq into temp8 from temp7 order by jzrq-----------将往来科目110、203、207的二级明细代码作为二级会计科目与其合并,并建立一张临时表
select * into 教育局pzk2005 from temp6
union
select * from temp8-----------合并2帐表,得到最终的凭证库表
三、将三张表导入AO
资产负债中收益类科目通过结转凭证表dbo.informix_zw_jzpz都结转完毕,并且将往来科目也导入了三张表中,将三张表导入AO。由于有了往来明细科目,方便了审计人员对往来科目的查找和分析,提高了审计工作效率。
|