审计过程中面对居民身份证号,一般情况下审计人员仅对居民身份信息的完整性(如长度是否少于15位、18位或是否为空)作出判断,很少对其准确性进行深入检查,由于居民身份证信息是判断居民信息的关键字段,甚至是唯一字段,经常会遇到居民身份证信息与其他信息的关联或历史数据的比对,如何纠正信息系统中错误身份信息,还原正确居民身份证信息,追查审计线索,就显得尤为重要。本文就公积金联网审计过程中,利用AO 2011SQL查询分析器进行居民身份证信息数据质量分析及应用作简单介绍。 一、身份证号码的规则分析 熟悉身份证信息的编码规则,是校验数据质量的基础。根据[中华人民共和国国家标准GB11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。而早期使用的是15位的身份证号码相比则少了两位出生年份码和一位校验码。具体编码规则见表1。
二、身份证号码准确性校验方法 校验身份证信息,保证数据质量的准确性,是审计结果应用的关键,一般情况下身份证信息校验方法从地址码、出生日期、性别三个层面开展。 (一)地址码校验 通过全国身份证地址电子查询档案,验证业务数据中身份地址前6位系统数据的正确性(见图1)。校验方法有两种。
一是左连接查询校验。以业务数据身份证编码截取6位左连接全国身份证地址电子查询档案,对连接结果“对应地址”为空的身份证编码进一步校验其准确性。查询语句如下: select a.贷款人身份证编码,substring(a.贷款人身份证编码,1,6)身份证地址码,b.地址码,b.对应地址 from贷款合同表a left join全国身份证地址电子档b on substring(a.贷款人身份证编码,1,6)=b.地址码 where len(a.贷款人身份证编码)=15 or len(a.贷款人身份证编码)=18 order by substring(a.贷款人身份证编码,1,6) 二是子查询校验。以业务数据身份证编码截取6位,查看6位地址码是否在全国身份证地址电子查询档案中。 select贷款人身份证编码,substring(贷款人身份证编码,1,6)身份证地址码from贷款合同表 where substring(贷款人身份证编码,1,6)not in(select地址码from全国身份证地址电子档) (二)出生日期校验 验证身份证编码出生日期的准确性,校验过程中一般有两种思路。 一是出生日期对比。截取18位身份证编码中7~14位(若是15位则截取7~12位并在前面补上‘19’),形成校验出生日期与贷款合同表中出生日期比对一致性。查询语句如下: select贷款人身份证编码,len(贷款人身份证编码)身份证长度, case when len(贷款人身份证编码)=15 then'19'+substring(贷款人身份证编码,7,2)+'-'+sub-string(贷款人身份证编码,9,2)+'-'+substring(贷款人身份证编码,11,2) when len(贷款人身份证编码)=18 then substring(贷款人身份证编码,7,4)+'-'+substring(贷款人身份证编码,11,2)+'-'+sub-string(贷款人身份证编码,13,2)end校验出生日期, case when len(贷款人出生日期)=8 then substring(贷款人出生日期,1,5)+'0'+substring(贷款人出生日期,6,2)+'0'+sub-string(贷款人出生日期,8,1)else贷款人出生日期end贷款人出生日期 from贷款合同表 where(len(贷款人身份证编码)=15 or len(贷款人身份证编码)=18)(见图2)
二是年龄异常分析。截取18位身份证编码中7~10位(若是15位则截取7~8位并在前面补上‘19’)形成出生年份,用贷款年份减去出生年份,则为“身份证年龄校验”,对异常年龄进行分析。查询语句如下: select贷款人身份证编码,len(贷款人身份证编码)长度,贷款申请日期, case when len(贷款人身份证编码)=15 then year(贷款申请日期)-('19'+substring(贷款人身份证编码,7,2))