会计数据审计分析九大算法实例Word格式.docx

上传人:b****4 文档编号:16835782 上传时间:2022-11-26 格式:DOCX 页数:13 大小:21.31KB
下载 相关 举报
会计数据审计分析九大算法实例Word格式.docx_第1页
第1页 / 共13页
会计数据审计分析九大算法实例Word格式.docx_第2页
第2页 / 共13页
会计数据审计分析九大算法实例Word格式.docx_第3页
第3页 / 共13页
会计数据审计分析九大算法实例Word格式.docx_第4页
第4页 / 共13页
会计数据审计分析九大算法实例Word格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

会计数据审计分析九大算法实例Word格式.docx

《会计数据审计分析九大算法实例Word格式.docx》由会员分享,可在线阅读,更多相关《会计数据审计分析九大算法实例Word格式.docx(13页珍藏版)》请在冰豆网上搜索。

会计数据审计分析九大算法实例Word格式.docx

selecta.iperiod,a.csign,a.ino_id,a.ccode,b.ccode_name,a.md,a.mc

fromGL_accvouchajoincodebona.ccode=b.ccodewherea.ccode_equallike'

%,101%'

ora.ccode_equallike'

101%'

orderbya.iperiod,a.csign,a.ino_id,a.ccode

selecta.ccode科目代码,ccode_name科目名称,SUM(md)借方发生额,SUM(mc)贷方发生额

fromGL_accvouchajoincodebona.ccode=b.ccode

whereccode_equallike'

orccode_equallike'

groupbya.ccode,ccode_name

/*第二算法赊销算法,借方一个科目,贷方一个科目。

如借应收账款/票据贷:

主营业务收入/产品销售收入

查凭证比查记录多张表。

从题意看有二个条件,即凭证中要有应收科目和主营业务收入科目,所以要三张表,a表是查询结果凭证,

--------b表设应收条件,c表设主营业务收入条件。

检索出所有赊销收入明细账记录。

赊销:

已销售,没收到钱。

--第一种方式可以利用产品销售收入的对应科目code_equal来完成

select*fromGL_accvouch

whereccode='

501'

andccode_equallike'

%113%'

andmc<

0orderbyiperiod,csign,ino_id

--第二种方式内连接方式,求两个集合的交集运算,检查两个表中的共有内容。

显示的是记录而不是凭证。

Selecta.*fromgl_accvouchajoingl_accvouchb

andb.ccode='

113'

anda.mc<

0orderbya.iperiod,a.csign,a.ino_id

检索出所有赊销收入明细账凭证。

或查找各月赊销凭证

--第一种方式两表连接

selecta.*fromGL_accvouchajoinGL_accvouchb

whereb.ccode='

andb.ccode_equallike'

andb.mc<

orderbya.iperiod,a.csign,a.ino_id

--第二种方式三表连接

selecta.*fromGL_accvoucha

joinGL_accvouchbona.iperiod=b.iperiodanda.csign=b.csignanda.ino_id=b.ino_id

joinGL_accvouchconc.iperiod=b.iperiodandc.csign=b.csignandc.ino_id=b.ino_id

whereb.ccodelike'

501%'

andc.ccodelike'

113%'

andC.md<

0andb.mc<

查找各月赊销收入总额

selecta.iperiod期间,SUM(a.mc)收入总额fromGL_accvoucha

wherea.ccodelike'

andb.ccodelike'

andb.md<

0anda.mc<

groupbya.iperiod

selectiperiod,SUM(mc)收入总额fromGL_accvouch

whereccode='

groupbyiperiod

查找各月现销记录

anda.md<

select*fromGL_accvoucha

wherea.ccode='

anda.ccode_equallike'

%501%'

andmd<

查找各月现销凭证

and(c.ccodelike'

orc.ccodelike'

102%'

)andC.md<

查找各月现销收入,分析:

统计各月通过现结方式的现金收入。

selecta.iperiod期间,SUM(a.md)收入

fromGL_accvoucha

where(a.ccodelike'

ora.ccodelike'

)andb.ccodelike'

计算各月收回的销售欠款(应收账款)累计发生额。

分析:

应收账款是113,何谓收回,即113在贷方,借方应为101、102

selecta.iperiod期间,a.ccode,sum(a.mc)mc,SUM(a.md)md

fromGL_accvoucha

0

groupbya.iperiod,a.ccode

计算各月收回的销售欠款(应收账款)凭证。

分解条件:

此凭证借方应为现金或银行存款,贷方为113,要查找凭证

selecta.*fromGL_accvouchajoingl_accvouchb

where(b.ccodelike'

orb.ccodelike'

)andb.md<

0andc.ccodelike'

andc.mc<

and(b.ccode_equallike'

orb.ccode_equallike'

%,113%'

/*第三算法登记一个科目,末登记一个科目的算法。

使用外连接left(right)join。

实现两个集合的差集运算。

找出一个集合中存在而另一个集合不存在的内容*/

检查所有确认收入时,未同时提取应交税金的销售收入明细账记录。

------分析:

先查询凭证中有主营业务收入,再左连接所有提取了应交税金的记录,而右表中为空的即为未提取应交税金的记录。

selecta.*

from(select*fromGL_accvouchwhereccodelike'

0)a

leftjoin(select*fromGL_accvouchwhereccodelike'

221%'

0)b

ona.iperiod=b.iperiodanda.csign=b.csignanda.ino_id=b.ino_id

whereb.iperiodisnull

selecta.*fromGL_accvouchaleftjoin

GL_accvouchbona.iperiod=b.iperiodanda.csign=b.csignanda.ino_id=b.ino_idandb.ccodelike'

andb.iperiodisnullanda.mc<

--第一个视图,获取所有有501主营业务收入的记录

createviewa_1as

select*fromGL_accvouchwhereccodelike'

--第二个视力,获取所有有221%提取税金的记录

createviewa_2

asselect*fromGL_accvouchwhereccodelike'

--最后,一视图左连接二视图,检查右边记录为空的所有记录,即为确认收入时未同时提取应交税金。

createviewa_3

as

selecta.*froma_1a

leftjoina_2bona.iperiod=b.iperiodanda.csign=b.csignanda.ino_id=b.ino_id

whereb.iperiodisnullorderbya.iperiod,a.csign,a.ino_id

dropviewa_1,a_2

检查漏缴税款的凭证

------分析用有主营业务收入的a表(子查询)作查询结果凭证,再与有提取税金的B表(子查询)进行左连接,右为空的即为所求。

selecta.*fromGL_accvoucha

join(selecta.*

whereb.iperiodisnull)b

join(

selecta.*fromGL_accvouchaleftjoinGL_accvouchb

ona.iperiod=b.iperiodanda.csign=b.csignanda.ino_id=b.ino_idandb.ccodelike'

0andb.iperiodisnull)b

--在上题的基础上,将凭证表与视图a_3用join连接,而视图a_3中的记录的所在凭证即为漏缴税款的凭证

joina_3bona.iperiod=b.iperiodanda.csign=b.csignanda.ino_id=b.ino_id

dropviewa_3

/*第四算法数据分层算法*/

--利用分组和求和、计数函数实现分层。

三种情况:

0到最大值分层;

正的最小值到最大值分层;

按金额范围分层。

--

(一)从0到最大值分层。

分层:

(1)统计业务发生额的最大值、最小值,分别汇总金额和数量。

分层的关键是找出层宽

--

(2)使用ceiling取整函数进行分层分组汇总,正数“进一法”取整,负数“去尾法”取整。

-----实际上ceiling函数是返回大于或等于所给数值的最小整数。

且注:

5/2=2,5/2.0=2.5

--例将主营业务收入明细账(501科目)记录从0开始到最大值分10层,统计每层业务笔数、金额,以及占总业务笔数、金额的比率。

selectMAX(mc)最大值,MAX(mc)/10层宽,COUNT(*)数量合计,SUM(mc)金额合计

fromGL_accvouchwhereccodelike'

selectcast(CEILING(mc/40800.00)asint)层级,COUNT(*)业务笔数,

cast(COUNT(*)/27.00asnumeric(4,2))数量比率,sum(mc)业务金额合计,cast(sum(mc)/4733700.00asnumeric(4,4))金额比率

0groupbyCEILING(mc/40800.00)

--

(二)从正的最小值到最大值分层

--例将主营业务收入明细账(501科目)记录从正的最小值开始到最大值分10层,层数=ceiling(发生额-最小值)/层宽

--统计每层业务笔数、金额,以及占总业务笔数、金额的比率。

必须要做最小值的判断,使层数的开始为1。

selectMAX(mc)最大值,Min(mc)最小值,(MAX(mc)-MIN(mc))/10层宽,COUNT(*)数量合计,SUM(mc)金额合计

fromGL_accvouch

whereccodelike'

selectCEILING(casewhenmc=6000then1else(mc-6000)/40200.00end)层级,COUNT(*)业务笔数,count(*)/27.00数量占比,

SUM(mc)业务金额合计,SUM(mc)/4733700.00金额占比

groupbyCEILING(casewhenmc=6000then1else(mc-6000)/40200.00end)

--(三)按金额范围分层。

--例将主营业务收入明细账(501科目)记录分为4层,包括2万元以下,2万--3万元,3万--4万元,4万元以上。

--分析:

首先统计每笔业务所属的区间,按区间确定层级增加“层级”列。

然后再按要求进行统计。

selectCOUNT(*)zsl,SUM(mc)zjefromGL_accvouchwhereccodelike'

select层级,COUNT(*)业务笔数,count(*)/27.00数量占比,SUM(mc)业务金额合计,SUM(mc)/4733700.00金额占比

from(select层级=

casewhenmc<

20000then1

whenmcbetween20000and30000then2

whenmcbetween30000and40000then3

whenmc>

40000then4end,*

groupby层级

/*第五算法整理科目的算法*/

从凭证表查询获得以下内容(期间、凭证类型、凭证号、摘要、科目代码、借贷方向、金额),利用CASE语句。

selectiperiod期间,csign凭证类型,ino_id凭证号,a.cdigest摘要,a.ccode科目代码,b.ccode_name科目名称,

casewhenmd<

0then'

借'

whenmc<

贷'

end借贷方向,

0thenmdwhenmc<

0thenmcend金额

fromGL_accvouchajoincodebona.ccode=b.ccode

已知某单位科目代码级次为322。

下列程序可以生成了个新的科目代码表。

表中包含两个字段(科目代码、科目全称)

利用case语句进行判断。

第一个表用来展示,第2表为二级科目表,第3表为三级科目表,第4表为四级科目表......

--按级次来确定需要连接几个表,如题,3个级次则要连接4张表。

分别自连接,利用left构造各级次的代码表

selecta.ccode科目代码,科目全称=b.ccode_name+

casewhenLEN(a.ccode)>

3then'

\'

+c.ccode_nameelse'

'

EnD+

5then'

+d.ccode_nameelse'

end

fromcodea

joincodebonleft(a.ccode,3)=b.ccode

joincodeconleft(a.ccode,5)=c.ccode

joincodedonleft(a.ccode,7)=d.ccode

/*第六算法真实性、完整性、一致性检查的算法

真实性、完整性算法类型比较多,首先看什么是真实性;

什么是完整性,从老师已经讲过的内容来看,

(注意,查真实性完整性,在凭证表中都指的是收入凭证,也就是在凭证表中要设条件ccodelike'

查找真实性就是从:

关注业务的真实性,进行逆查.

    凭证表->发票表->发货单 即为gl_accvouch----->

salebillvouch------->

dispatchlist

查找完整性就是从:

发货单->发票表->凭证表 即为dispatchlist---->

salebillvouch------>

gl_accvouch

审计人员检查销售发票所列商品的品名、数量、金额与发货单中所列商品的品名、数量、金额是否一致。

分析:

全连接fulljoin。

在不确定两个集合的关系时,可以使用全连接。

包含了两个集合的所有元素。

通常会将同一张发票、发货单的主子表连接起来。

按品名等分组。

在左连接、右连接、全连接时,如

where条件需要作比较判断时,需用isnull函数确定数据的准确性、完整性。

select*from(

selecta.cSBVCode,cInvCode,SUM(b.iQuantity)sl,SUM(iNatSum)je

fromSaleBillVouchajoinSaleBillVouchsbona.SBVID=b.SBVID

groupbya.cSBVCode,cInvCode)a

fulljoin

(selecta.cSBVCode,a.cdlcode,cInvCode,SUM(b.iQuantity)sl,SUM(iNatSum)je

fromDispatchListajoinDispatchListsbona.DLID=b.DLID

groupbya.cSBVCode,a.cdlcode,cInvCode)b

ona.cSBVCode=b.cSBVCode

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1