我们在对农村低保资金进行审计时,发现各镇街一般都有各月的低保资金发放表(excel格式),该表的利用价值较高,含有低保户姓名、身份证号、人口数量、银行账号、发放金额的关键字段。结合浦口区低保资金提标从2007年12月份由180元提高到200的情况,我们分别采集了2007年1月、11月、12月的发放数据导入到SQL中进行分析查询,具体做法如下。 1.从身份证号长度判断身份证号的真实性。目前的身份证号尽管处于新旧交替使用阶段,但身份证号的长度是有规律的,旧号码15位,新号码18位。我们以12月份发放表为列,构建如下查询语句,查找不符合规定的身份证号: select*from 12月份发放表where 身份证号is not null and len(rtrim(ltrim(身份证号)))<>15 and len(rtrim(ltrim(身份证号)))<>18 2.通过isdate函数判断符合长度身份证号码的有效性,筛选出不合常规的记录。构建如下语句进行查询: select*from 12月份发放表where 身份证号is not null and(len(身份证号)=15 or len(身份证号)=18)and isdate(casewhen len(身份证号)=15 then substring(身份证号,7,6) else substring(身份证号,7,8)end)=0 3.查找身份证号为空的具体记录、数量及发放金额。 select*from 12月份发放表where身份证号isnull; select count(*),sum(发放金额)from 12月份发放表where身份证号is null; 4.查找有无超标准发放情况。我们将发放金额除以人口数量大于200的记录进行降序排列,重点关注那些前面的记录,同时要考虑结合档案提高10%、20%的特殊情况。 select*,发放金额/人口数量as平均from 12月份发放表where 人口is not null and发放金额/人口数量>=2000rder by发放金额/人口数量desc 5.查询有无按规定进行了提标。首先,利用11月份的数据计算生成一个应发表,再与12月份的数据进行左连接,如果应发数大于12月份实际发放数则显然违反规定。 Select*,(200-发放金额/人口数量)*人口数量as应发数into应发表from 11月份发放表; Select*from应发表left join 12月份发放表on应发表.银行账号=12月份发放表.银行账号where应发数>12月份发放表.发放金额 6.查询民政部门审核低保户收入变动情况的频率(动态管理情况)。我们将1月份发放表、11月份发放表以银行账号(考虑到有不填写身份证号的情况)为连接条件进行左连接,查找发放金额不相等的记录。如果没有或很少,则证明民政部门在1-11月份间未进行收入的再审核(具体时间跨度还可以由审计人员自己确定)。 select*from 1月份发放表left join11月份发放表on 1月份发放表.银行账号=11月份发放表.银行账号where 1月份发放表.发放金额<>11月份发放表.发放金额