利用SQL语句审查新农保业务违规问题,本文主要内容关键词为:语句论文,业务论文,新农论文,SQL论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
以A省审计为例,A省9个试点县有59.61万参保人,而审计组成员仅有8人,通过各种形式的查询、比对,查出A省试点县有8729位参保人存在不具备条件参保等业务管理问题,达到了人工审计难以达到的目的,有效提高了审计效率。
审计思路
通过将新农保经办机构的参保数据、养老金发放数据与公安户籍数据、城镇养老保险参保数据进行比对,筛选出非农户籍农民参保问题和参保人重复参保问题。将新农保经办银行养老金发放数据通过自连接进行比对,筛选出重复发放养老金问题。
审计实施:利用SQL语句筛选相关数据
(一)数据准备阶段
到新农保经办机构、公安、经办银行和社保局分别下载新农保参保数据、农民户籍数据、养老金发放数据和城镇养老保险数据,其中农民户籍数据、城镇养老保险数据、养老金发放数据为文本格式,新农保参保数据为EXCEL格式。因户籍数据为省级集中,审计组向省公安厅户籍管理部门提出下载B县农村户籍数据的需求,字段有“姓名”、“身份证号”和“户别”;因新农保参保数据、养老金发放数据和城镇养老保险数据为县级集中,审计组向B县社保局提出下载城镇养老保险数据的需求,字段有“姓名”、“身份证号”和“参保登记日期”;向B县农保中心提出下载新农保参保情况数据的需求,字段有“所属区、乡镇、村、屯”、“姓名”、“性别”、“身份证号码”、“出生年月”、“缴费档次”、“补贴”、“参保时间”和“备注”;向B县经办银行提出下载养老金发放数据的需求,字段有“新农保编号”、“姓名”、“身份证号”、“领取月份”和“养老金发放额”。下载后数据分别形成“B县农村户籍表”、“B县城镇养老保险参保情况表”、“B县新农保参保情况表”和“B县养老金发放表”4张表。
利用SQL server“数据转换服务导入/导出向导”将上述4张表导入到SQL数据库中,为下步数据分析做准备。
(二)数据分析阶段
1.违规参保和违规发放养老金问题
根据国务院《关于开展新型农村社会养老保险试点的指导意见》,新农保参保条件为“年满16周岁(不含在校学生)、未参加城镇职工基本养老保险的农村居民”。审计组将上述4张表通过“身份证号码”进行关联,筛选出非农户籍人员参加新农保、参保人重复参保、不符合条件人员参保和向非农户籍人员发放养老金的问题。
(1)筛选经办机构为非农户籍人员办理新农保的数据。将“B县农村户籍表”与“B县新农保参保情况表”通过“身份证号码”字段进行关联,筛选出已纳入新农保参保范围的非农户籍人员,SQL语句为:
select a.户别,b.*from B县农村户籍表a join B县新农保参保情况表b on a.身份证号码=b.身份证号码where a.户别like‘非农业家庭户’
经计算机筛选后,发现B县将710位非农户籍人员纳入新农保的参保范围。用类似方法,9个试点县累计将740位非农户籍人员纳入新农保的参保范围。
(2)筛选参保人重复参保的数据。将“B县城镇养老保险参保情况表”与“B县新农保参保情况表”通过“身份证号码”字段进行关联,筛选出既参加城镇养老保险又参加新农保的人员,SQL语句如下:
select a.*,b.参保登记日期城镇参保登记日期from B县新农保参保情况表a join B县城镇养老保险参保情况表b on a.身份证号码=b.身份证号码
经计算机筛选后,发现B县有55位参保人重复登记参保。用类似方法,9个试点县累计有2179位参保人重复登记参保。
(3)筛选经办机构为不满16周岁人员办理新农保的数据。审计时间为2010年5月末,利用datediff函数,对“B县新农保参保情况表”中设定检索条件为“datediff(month,出生年月,‘2010-05-31’)<192”,筛选出不满16周岁参加新农保的人员,SQL语句如下:
select*from B县新农保参保情况表where datediff(month,出生年月,‘2010-05-31’)<192
经计算机筛选后,发现B县为6位不满16周岁人员办理新农保。用类似方法,9个试点县累计为40位不满16周岁人员办理新农保。
(4)筛选向非农户籍人员发放养老金的数据。将“B县养老金发放表”分别与“B县农村户籍表”、“B县城镇养老保险参保情况表”进行关联,筛选出非农户籍人员、已参加城镇养老保险人员领取养老金的数据,SQL语句如下:
select a.户别,b.*from B县农村户籍表a join B县养老金发放表b on a.身份证号码=b.身份证号码where a.户别like‘非农业家庭户’
select b.*from B县城镇养老保险参保情况表a join B县养老金发放表b on a.身份证号码=b.身份证号码
经计算机筛选后,发现B县向710位非农户籍人员发放养老金15.62万元,向48位已参加城镇养老保险人员发放养老金7920元。用类似方法,9个试点县累计向740位非农户籍人员发放养老金16.95万元,向464位已参加城镇养老保险人员发放养老金15.34万元。
(5)筛选经办机构向未满60周岁人员发放养老金的数据。国务院《关于开展新型农村社会养老保险试点的指导意见》规定“年满60周岁、未享受城镇职工基本养老保险待遇的农村有户籍的老年人,可以按月领取养老金”,将“B县新农保参保情况表”与“B县养老金发放表”进行关联,假定审计时间为2010年5月末,设定检索条件为“datediff(month,出生年月,‘2010-05-31’)<720”,筛选出未满60周岁领取养老金的参保人员,SQL语句如下:
select b.新农保编号,b.姓名,b.身份证号,b.领取月份,b.养老金发放额,a.出生年月from B县新农保参保情况表a join B县养老金发放表b on a.身份证号码=b.身份证号码where datediff(month,出生年月,‘2010-05-31’)<720
经计算机筛选后,发现9个试点县累计向9位未满60周岁人员发放养老金1795元。
2.参保人信息管理不规范问题
审计组在审前调查中了解到,B县经办机构采用手工录入EXCEL表的方式管理参保人信息,缺少信息的自动识别和纠错功能,造成参保人信息管理不规范。审计组利用SQL语句对“B县新农保参保情况表”和“B县养老金发放表”进行检索。
(1)筛选符合养老金领取条件人员未及时纳入养老金发放范围的问题。审计组5月份进点时B县前4个月的养老金已发放,审计组决定对前4个月按月分别查询,SQL语句如下:
一是查询1月末满60周岁人员(1950年1月份出生)。
select*from B县新农保参保情况表where datediff(month,出生日期,‘2010-01-31’)>=720 and身份证号码not in(select身份证号码from B县养老金发放表where发放月份=2)
二是查询2月末满60周岁人员(1950年2月份出生)。
select*from B县新农保参保情况表where datediff(month,出生日期,‘2010-02-28’)>=720 and身份证号码not in(select身份证号码from B县养老金发放表where发放月份=3)
以下类推,可根据审计时点和养老金发放情况决定查询月份。
经计算机筛选后,发现B县未及时将163位满60周岁人员纳入养老金发放范围,少发放养老金2.36万元。用类似方法,9个试点县未及时将2741位满60周岁人员纳入养老金发放范围,少发放养老金37.62万元。
(2)利用自连接,筛选因数据录入重复导致多发放养老金的问题,SQL语句如下:
select*from B县养老金发放表a join B县养老金发放表bon a.身份证号码=b.身份证号码where a.发放月份=b.发放月份and a.新农保编号<>b.新农保编号
经计算机筛选后,发现B县向103位养老金领取人员重复发放养老金3.39万元。用类似方法,又发现C县向967位养老金领取人员重复发放养老金5.32万元。
数据分析阶段完成后,审计组调阅参保人档案资料进一步核查取证,并将上述问题向B县等9个试点县有关部门征求意见,迅速完成新农保业务的审计。