计算机审计中自连接的应用
高军 刘建芬 刘敏(山东省诸城市审计局)
随着“金审工程”的不断深入推进,各级审计机关信息化进程不断加快,计算机审计已成为最基本的审计工作方式,相应的审计技术和方法也发生了变化。如果不考虑计算机软硬件本身的系统审计,那么我们所面对的审计也就是以财务帐套式审计模式和直接对数据本身审计的数据式审计模式。但是不论何种审计模式,最根本的还是使用计算机语句对具体问题进行查询分析,即通过数据库的SQL查询语句对数据库的数据表进行查询。
在平时的计算机审计中,大家常用的语句一般是条件式的查询,大家都比较熟悉,本文介绍的是另一种查询方法——自连接。
自连接(self join)是SQL语句中经常要用的连接方式,使用自连接可以将自身表的一个镜像当作另一个表来对待,从而能够得到一些特殊的数据。在平时的审计中,虽然我们很少用到数据表的自连接,但在某些特殊的项目中,自连接却显得至关重要。那么如何实现表的自连接呢?我们用实例来说明。
在公积金的信贷审计中,信贷表(假设这是信贷表的格式)
贷款人编号 | 贷款日期 | 还贷日期 | 担保人编号 |
123456 | 2003-1-2 | 2006-5-12 | 123234 |
234567 | 2004-3-5 | 2007-3-5 | 345212 |
345678 | 2006-5-12 | 2009-9-12 | 345234 |
456789 | 2006-7-23 | 2010-7-8 | 123456 |
从上表中,我们可以很简单的查询到贷款人的信息和担保人的信息,但如果检查是否存在循环担保(既是贷款人又是担保人)的问题,我们单纯的用条件查询是不可能实现,这就要用到自连接。
自连接的本意就是将一张表看成多张表来做连接。为了查出循环担保的问题,我们把表看成三张表。
A | B | C | D | E | F |
贷款人编号 | 担保人编号 | 贷款人编号 | 担保人编号 | 贷款人编号 | 担保人编号 |
123456 | 123234 | 123456 | 123234 | 123456 | 123234 |
234567 | 345212 | 234567 | 345212 | 234567 | 345212 |
345678 | 345234 | 345678 | 345234 | 345678 | 345234 |
456789 | 123456 | 456789 | 123456 | 456789 | 123456 |
在上表中,B和C作为关联字段,D和E作为关联字段,A和F是条件
Select a.*
from 信贷表 a join 信贷表 b on
a. 担保人编号=b. 贷款人编号
join 信贷表 c on
b.担保人编号=c.贷款人编号
where a.贷款人编号=c.担保人编号
通过自连接我们查询出编号“123456”既是贷款人又是担保人,如果他的还贷日期在他所担保的人贷款日期,基本就可以确定存在循环担保的问题。
从上面的实例中我们看到,当表中的某一个字段与这个表中另外字段的相关时,我们可能用到自连接。利用好自连接我们就打开了计算机审计的另一扇门。(高军 刘建芬 刘敏)
【关闭】 【打印】 |