审计之窗

当前位置: 首页 -> 审计之窗 -> 审计信息化

数据库自连接查询在审计工作中的运用

发布时间: 2016-5-15

字号: [ ]

 

数据库中的SQL语句是现实数据库查询的重要手段,自连接是数据库中一种特殊的内连接,指相互连接的表在物理上表现为同一张表,但在逻辑上却可分为两张表。如,在对某单位进行财务数据审计时,该单位所使用的用友财务软件中有一张会计凭证表:gl_accvouch,该表有会计期间(iperiod)、凭证类型(csign)、凭证号(ino_id)、贷方金额(mc)等字段,其中一个审计事项是计算各月应收回的销售欠款(应收账款),用SQL语句中的自连接查询实现语法如下:

select a.iperiod,sum(a.mc)

from gl_accvouch a

join gl_accvouch b

On a.iperiod=b.iperiod and a.csign=b.csign and a.ino_id=b.ino_id

where (a.ccode like '113%'and a.mc>0)113(代表应收账款科目)

and ((b.ccode like '102%'and b.md>0)102(代表银行存款科目

or (b.ccode='101'and b.md>0))101代表现金科目)

group by a.iperiod

通过以上的自连接查询,可以很简便的得到所需要的审计结果,而且在很大程度上提高了SQL语句的运行效率。

再如,用友财务软件中存储会计科目的表科目代码表code,该表中有科目代码(ccode),科目名称(ccode_name)等字段,现需要对该表中的数据进行整理,将表中的二级和三级科目整理成所在一级科目下,方便审计查看。该科目代码表中原数据显示如下:

 通过SQL语句自连接查询,可将数据显示如下结果:

 由此看出,通过自连接查询实现了数据整合的功能,不仅方便审计人员查看会计科目,更充分发挥计算机审计在会计审计中的作用。具体SQL自连接查询语法如下:

select km.ccode,ccode_name=k1.ccode_name +

case when len(km.ccode)>3 then '\'+k2.ccode_name else '' end+case when len(km.ccode)>5 then '\'+k3.ccode_name else '' end

from code km join code k1 on left(km.ccode,3)=k1.ccode

join code k2 on left(km.ccode,5)=k2.ccode

join code k3 on left(km.ccode,7)=k3.ccode

(转载自审计刷网站)

Copyright @ 2008-2009 内蒙古巴彦淖尔市审计局版权所有 蒙ICP备09004296号
地址:巴彦淖尔市临河区新华西街北金沙路东 巴彦淖尔市审计局 邮政编码:015000 电话:(0478)-7866228 传真:(0478)-7866228
网站维护:审计局办公室 技术支持:世纪泓科技