家电下乡补贴ASL代码调用SQL Server 用户数据库和SQL自定义标量值函数计算机审计方法Word文件下载.docx
《家电下乡补贴ASL代码调用SQL Server 用户数据库和SQL自定义标量值函数计算机审计方法Word文件下载.docx》由会员分享,可在线阅读,更多相关《家电下乡补贴ASL代码调用SQL Server 用户数据库和SQL自定义标量值函数计算机审计方法Word文件下载.docx(110页珍藏版)》请在冰点文库上搜索。
![家电下乡补贴ASL代码调用SQL Server 用户数据库和SQL自定义标量值函数计算机审计方法Word文件下载.docx](https://file1.bingdoc.com/fileroot1/2023-5/8/bf86d152-4a7f-4225-bcb1-d2e2b8d727ed/bf86d152-4a7f-4225-bcb1-d2e2b8d727ed1.gif)
6、通过ASL程序代码实现制作审计报表功能。
主要通过配合使用SQLFORXMLPATH语句块,原创性的解决了根据各种审计疑点制作汇总报表的瓶颈问题。
四、审计事项
预算执行审计/财政专项审计/家电下乡补贴资金/支出真实性审查
预算执行审计/财政专项审计/家电下乡补贴资金/支出合法性审查
预算执行审计/财政专项审计/家电下乡补贴资金/支出效益性审查
五、所需数据
表1本审计方法所需数据资料
序号
数据资料名称
结构化
非结构化
半结构化
1
家电下乡补贴明细表(主表,ORACLEPLSQL导出CSV数据)
√
2
家电销售网点备案表(2012年)
3
全员人口信息表(2012年)
4
城镇低保户信息表(2012年)
5
农村低保户信息表(2012年)
6
农村分散五保户信息表(2012年)
7
集中供养五保户信息表(2012年)
8
村干部工资表(2012年)
9
增值税征收明细表(2009-2012年)
10
政府采购明细表(2010-2012年)
11
财政部门家电下乡补贴会计报表(2009-2012年)
12
财政、商务部门家电下乡工作总结(2009-2012年)
13
财政、商务部门防骗补统计资料(2009-2012年)
14
家电下乡补贴标准等法规文件资料(2009-2012年)
(1)基础表:
家电下乡补贴明细表。
数据元素:
购买者姓名,身份证号码,购买者地址,产品类型,产品价格,补贴金额,受理部门,销售网点,标识卡号,补贴时间,补贴状态。
(2)基础表:
家电销售网点备案表。
ID,字段名称,字段值。
(3)基础表:
全员人口信息表。
户号,户口性质,户口姓名,与户主关系,身份证号码,住址,注销原因,注销时间。
(4)基础表:
城镇低保户信息表。
城低户主姓名,城低家庭成员姓名,城低保障人口数,城低身份证号A,机构号,城低起始发放日期,城低地址,城低身份证号。
(5)基础表:
农村低保户信息表。
对象代码,姓名,身份证号码,家庭住址,发放账号,补贴金额,保障人口数。
(6)基础表:
农村分散五保户信息表。
姓名,身份证号码,家庭住址,发放年度,类别。
(7)基础表:
集中供养五保户信息表。
姓名,身份证号码,类别,街道乡镇,村名,地址。
(8)基础表:
增值税征收明细表。
年度,税务机关,纳税人识别号,纳税人名称,税种,增值税额。
(9)基础表:
村干部工资表。
年度,姓名,身份证号码,家庭住址,类型名称,状态,总金额。
(10)基础表:
政府采购明细表。
采购单位,归口处室,合同编号,采购时间,采购项目,数量,采购方式,资金来源,采购金额,中介名称,中介代理编号,中标商名称,支付进度,是否大型采购,采购品目分类,分类B,分类C,备注。
六、分析步骤
步骤
内容
步骤1:
▲数据完整性检测
1.1
步骤1.1:
全部基础表及其记录数量检测
步骤分析:
通过ASL程序代码【初始】调用用户自定义SQL数据库【库名:
JDXX】,利用[SQL游标]实现对全部基础表及其记录数量检测,并与纸质报表等非结构化数据核对一致。
1.2
步骤1.2:
主表按受理部门总销量和总补贴金额分组检测
通过ASL程序代码调用用户自定义SQL数据库【库名:
JDXX】,利用[SQL动态列转行],自动按受理部门总销量和总补贴统计数量和金额,并与纸质报表等非结构化数据核对一致。
1.3
步骤1.3:
主表[身份证号码]合规性检测
JDXX】,[调用SQL自定义函数](函数名:
IS_SFZH、Get_Sex)对[身份证号码]合规性进行检测,生成“身份证号码合规性勘误表”,自动送入用户自定义SQL数据库和AO进行管理,同时以此通知被审计单位进行误报数据更正。
步骤2:
▲建立审计中间表
2.1
步骤2.1:
清洗基础表[姓名]字段
Get_Chinese)清洗基础表中[姓名]字段的非汉字字符,制备标准的[姓名]中文字段。
2.2
步骤2.2:
清洗基础表[身份证号码]字段
Get_Number)去除[身份证号码]中的隐藏非[0-9]和非英语字母[X]的字符,调用方法:
【AA_SQL审计专用函数库.dbo.Get_Number(身份证号码)】,制备标准的[身份证号码]字段。
2.3
步骤2.3:
整理基础表
JDXX】,利用[ASL双层嵌套循环及IF分支结构]实现SQL动态行列转置,将以WORD文档方式保存的非结构化原始基础表进行标准化改造。
生成[临时表A]时运用了SQLServer2008的排名开窗函数(结构与SQL用法:
row_number()over(partitionby字段名称orderbyID)),为源数据表的同一或不同分区添加序列号。
本步骤在4处创建了SQL聚集索引以提高执行效率和整体性能。
2.4
步骤2.4:
创建审计中间表
JDXX】,在leftjoin连接查询中[调用SQL自定义函数](函数名:
ID18TO15、Get_Number),简化运算。
生成审计中间表。
步骤3:
▲数据集成分析性复核
3.1
步骤3.1:
按产品类型分年度总体趋势分析
JDXX】,配合使用[SQL动态交叉表],生成“按产品类型分年度总体趋势分析结果表”。
根据变动趋势研究确定延伸审计重点。
3.2
步骤3.2:
按受理部门分产品趋势分析
JDXX】,配合使用[SQL动态交叉表],生成“按受理部门分产品趋势分析结果表”。
根据变动趋势研究确定延伸审计重点。
3.3
步骤3.3:
按受理部门分年度分产品趋势分析
JDXX】,配合使用[SQL动态交叉表],生成“按受理部门分年度分产品趋势分析结果表”。
3.4
步骤3.4:
按销售网点分年度分产品趋势分析
JDXX】,配合使用[SQL动态交叉表],生成“按销售网点分年度分产品趋势分析结果表”。
3.5
步骤3.5:
按销售网点(异地分店)分年度分产品趋势分析
JDXX】,配合使用[SQL动态交叉表],生成“按销售网点(异地分店)分年度分产品趋势分析结果表”。
3.6
步骤3.6:
销售网点增值税纳税数据趋势分析
JDXX】,配合使用[SQL动态交叉表],生成“销售网点增值税纳税数据趋势分析结果表”。
根据波动情况重点抽查核实商家偷逃增值税的问题事实。
3.7
步骤3.7:
按政府采购相关数据趋势分析
JDXX】,配合使用[SQL动态交叉表],生成“按政府采购相关数据趋势分析结果表”。
根据变动趋势确定党政机关外调重点。
发现疑点现场拍照。
步骤4:
▲图表分析
4.1
步骤4.1:
普通模式输出图表分析
JDXX】,配合使用ASL程序代码的图表输出功能,进行图形化分析。
4.2
步骤4.2:
循环模式输出图表分析
JDXX】,配合使用ASL程序代码图表输出功能,进行动态图形化分析。
步骤5:
▲数据分类分析性复核
5.1
步骤5.1:
输入参数查询虚构连续购买(每户单品2台)行为套取补贴审查
JDXX】,输入参数查询虚构连续购买(每户单品2台)行为,生成“普查表”、“重点排查表”。
经检查,确实存在虚构连续购买情况,且第二次虚构行为的时间集中出现在一到两周(1-15天)以内。
这些情况已予以重点关注。
实证反映这也是占比较大的严重违规行为,商家垫付阶段较普遍。
5.2
步骤5.2:
超标核准购买和补贴每户单品2台以上审查
JDXX】,查询生成“超标核准每户单品购买和补贴2台以上明细表”。
按照全国家电下乡补贴信息系统设计要求,此类情况是不可出现的,但经检查发现,系统存在一定控制漏洞,这一部分疑点应予重点关注。
5.3
步骤5.3:
商家利用本家庭户籍虚构销售行为套取补贴审查
JDXX】,生成“商家利用本家庭户籍虚构销售行为明细表”,延伸调查核实商家监守自盗的问题。
这是一种性质较为严重问题,应予重点关注。
5.4
步骤5.4:
持同一户口本异地冒领补贴审查
JDXX】,生成“持同一户口本异地冒领补贴明细表”。
实证反映,大部分为异地商家交换农户户籍资料所致,商家垫付阶段较普遍。
5.5
步骤5.5:
冒用去世人员户籍虚构销售套取补贴审查
Get_Chinese),检查冒用去世人员户籍虚构销售套取补贴情况,生成“冒用去世人员户籍虚构销售套取补贴明细表”。
这是一种性质较为严重问题,应予重点关注。
反映出了当前我国农村信用缺失的问题比较突出,一些商家越过了社会道德底线,主要是农村户籍来之不拒的情况时有发生,也反映出各地户籍管理存在薄弱环节。
延伸调查时,应分为主观故意和非主观区别对待。
5.6
步骤5.6:
直接利用非农户籍套取补贴审查
JDXX】,检查直接利用非农户籍套取补贴情况,生成“直接利用非农户籍套取补贴明细表”。
按照全国家电下乡补贴信息系统设计要求,此类情况是不可出现的,但家电下乡补贴只针对农户,非农户是不能享受的。
本步骤目的:
检查是否存在设计漏洞。
经检查,确实存在普遍违规情况。
经研究发现,这与我国现存的户籍登记管理多样性有关,如:
行政区划的变更频繁等,都是产生此类问题的原因。
5.7
步骤5.7:
利用村干部户籍(每户单品2台以上)套取补贴审查
ID18TO15),一方面重点检查利用村干部户籍(每户单品2台以上)套取补贴情况,另一方面重点检查有无村干部兼家电下乡店老板监守自盗,或与商家联手造假套取等问题。
5.8
步骤5.8:
利用城镇低保户籍虚构销售套取补贴审查
ID18TO15),检查利用城镇低保户籍虚构销售套取补贴情况。
理由:
在购买出现基本饱和的情况下,一些尚未购买也没有购买能力的户籍资料成为商家变通处理的对象,其中就包含城镇低保户籍资料。
5.9
步骤5.9:
利用农村低保户籍虚构销售套取补贴
JDXX】,[调用SQL自定义函数](函数名:
ID18TO15),检查利用农村低保户籍虚构销售套取补贴情况。
在购买出现基本饱和的情况下,一些尚未购买也没有购买能力的户籍资料成为商家变通处理的对象,其中就包含农村低保户籍资料。
经查验,这种情况在整个家电下乡补贴兑付过程中普遍存在。
5.10
步骤5.10:
利用农村分散五保户籍虚构销售套取补贴审查
ID18TO15),检查利用农村分散五保户籍虚构销售套取补贴情况。
在购买出现基本饱和的情况下,一些尚未购买也没有购买能力的户籍资料成为商家变通处理的对象,其中就包含分散五保户户籍资料。
经查验,这种情况在整个家电下乡补贴兑付过程中也普遍存在。
5.11
步骤5.11:
利用农村集中供养五保户籍虚构销售套取补贴审查
ID18TO15),检查利用农村集中供养五保户籍虚构销售套取补贴情况。
在购买出现基本饱和的情况下,一些尚未购买也没有购买能力的户籍资料成为商家变通处理的对象,其中就包含集中供养五保户籍资料。
5.12
步骤5.12:
冒用单身户籍虚构销售套取补贴审查
JDXX】,检查冒用单身户籍虚构销售套取补贴情况。
经查验,部分商家认为冒用单身户籍的“风险”比较小。
体现了一种审计新思路。
步骤6:
▲制作审计疑点汇总报表
6.1
步骤6.1:
创建审计疑点汇总中间表
JDXX】,配合使用[SQLFORXMLPATH语句],创建审计疑点汇总中间表。
审计疑点汇总是一门科学,但过去常常被忽略,大数据审计过程中,这种客观需求越来越多。
将不同形式的违规属性以逗号隔开、去除重复、横排一行显示,方便了后期核查。
也可直接据此延伸调查依据。
6.2
步骤6.2:
审计疑点记录汇总统计
JDXX】,配合使用[SQL游标],便于从总体上评估和把握审计结果。
6.3
步骤6.3:
按产品类型分组汇总审计疑点
JDXX】,配合使用[SQL动态交叉表]方法。
实现数据透视功能,展现逐步汇总审计疑点的方法。
6.4
步骤6.4:
按受理部门分组汇总审计疑点
6.5
步骤6.5:
按销售网点和产品类型分组汇总审计疑点
6.6
步骤6.6:
审计疑点分层汇总统计
JDXX】,配合使用[SQLCASEWHEN语句]方法,从总体上把握审计疑点分布状况,借以进一步确定延伸调查的范围和方式方法。
同时,结束调用用户自定义SQL数据库,恢复开始调用前的[master]状态。
步骤7:
▲决策延伸调查作出审计结论
本步骤没有实质性审查程序运行,只有提示结束窗口。
八、方法语言
//步骤1:
数据完整性检测
//步骤1.1:
全部基础表及其记录数量检测[SQL游标]
varSqlStr1;
SqlStr2;
SqlStr3;
SqlStr4;
//定义变量
begin
SqlStr1:
='
use[JDXX]'
;
ExecuteUpdate(SqlStr1);
//ASL调用用户自定义SQL数据库
//引用sysobjects以及SQL游标检索基础表记录数量核对一致
SqlStr2:
createtable[JDXX]..tmp(Recordcountint,tableNamevarchar(500))
+'
declare@tablenamevarchar(500)'
declare@sqlvarchar(500)'
declare@strvarchar(500)'
declaretablecursorcursorfor'
selectnamefrom[JDXX]..sysobjectswherextype=N'
'
u'
'
opentablecursor'
fetchnextfromtablecursorinto@tablename'
while@@fetch_status=0'
begin'
set@str=@tablename'
set@sql='
insertinto[JDXX]..tmp(recordcount,tablename)selectcount(*),'
+'
+@tablename+'
from[JDXX]..'
+@tablename'
exec(@sql)'
end'
closetablecursor'
deallocatetablecursor'
write(SqlStr2);
//输出SQL游标语句块
ExecuteUpdate(SqlStr2);
//SQL游标方法分别统计当前数据库实例所有表[数据库记录总条数]
SqlStr3:
SELECTrecordcountas记录数量,tablenameas表名称FROM[JDXX]..tmpwheretablename<
>
tmp'
CreateTempTable('
B基础表及其记录数量检测结果表'
SqlStr3);
//创建临时表
AddTable('
);
//创建记录数量检测结果表
SqlStr4:
droptable[JDXX]..tmp'
ExecuteUpdate(SqlStr4);
//删除临时表
end.
//步骤1.2:
主表按受理部门总销量和总补贴金额分组检测[SQL动态列转行]
//ASL代码调用用户自定义SQL数据库实例
ExecuteUpdate('
deletefrom[JDXX]..家电下乡补贴明细表where补贴状态<
是'
//删除主表中的冗余数据,以简化运算.
ExecuteUpdat