天气预报: 站内检索:
 
当前位置:
首页 >> 审计知识
一级科目分年度收支明细表、汇总表SQL语句

发布日期:2017-04-01信息来源:县审计局浏览次数:字号:[ ]

去年,中办、国办下发了《关于完善审计制度若干重大问题的框架意见》及《关于实行审计全覆盖的实施意见》,将创新审计技术方法,构建大数据审计工作模式,作为提高审计能力、质量和效率,扩大审计监督的广度和深度的重要手段。在审计实践中,本人对领导干部任期经济责任审计有关财务收支数据如何统计问题,总结和编写了以下SQL语句,与各位同仁分享。

第一步,打开AO2011的SQL查询器,输入“Select distinct 单位名称 From 科目余额”查看有多少单位,如图:

第二步对领导干部任期分年度一级科目收支明细进行统计,形成一级科目分年度收支明细表。

如果是整年度收支数据,则从数据库中“科目余额”表中查询,如查XX单位2011年至2016年收支数据。SQL语句如下:

Select 单位名称,年度,科目编码,科目名称,round (借方发生额/10000,2) 借方发生额,round(贷方发生额/10000,2) 贷方发生额 From 科目余额 where 年度 Between 2011 And 2016  and (科目编码 LIKE '4%' OR 科目编码 LIKE '5%') AND 单位名称 LIKE '%XX单位%' and  (期初余额<>0 or 借方发生额<>0 or 贷方发生额<>0 or  期末余额<>0)  AND 科目级别='1'

如果是非整年度收支数据,则从数据库中“总账”表中查询,如XX单位2017年1-6月份收支数据。“union all”是表格合并关键字,是对2011年至2016年收支数据和2017年1-6月份收支数据的合并。SQL语句如下:

Select 单位名称,年度,科目编码,科目名称,round (借方发生额/10000,2) 借方发生额,round(贷方发生额/10000,2) 贷方发生额 From 科目余额 where 年度 Between 2011 And 2016  and (科目编码 LIKE '4%' OR 科目编码 LIKE '5%') AND 单位名称 LIKE '%XX单位%' and  (期初余额<>0 or 借方发生额<>0 or 贷方发生额<>0 or  期末余额<>0)  AND 科目级别='1' union all Select 单位名称,年度,科目编码,科目名称,round (借方发生额/10000,2) 借方发生额,round(贷方发生额/10000,2) 贷方发生额 From 总账 where 年度= '2017' And 会计月份<'7' and (科目编码 LIKE '4%' OR 科目编码 LIKE '5%')AND 单位名称 LIKE '%XX单位%' and  (期初余额<>0 or 借方发生额<>0 or 贷方发生额<>0 or  期末余额<>0)  AND 科目级别='1'。

第三步对一级科目收支明细表进行汇总,形成一级科目收支汇总表。编写SQL语句如下:

Select 单位名称,科目编码, 科目名称,sum(借方发生额) 借方发生总额,sum(贷方发生额) 贷方发生总额 from 一级科目分年度收支明细表 GROUP BY 单位名称,科目编码, 科目名称。

通过以上二个SQL语句操作,将领导干部5年半任期内所有的一级科目各项收支数据,只需几秒钟时间就能全部统计出来,极大提高了审计工作效率和数据准确率。如果你还想查询二级科目收支数据,只要将第一个SQL语句中科目级别='1',改为科目级别='2'就可以了,这样还可以对财务收支收支结构进行分析,为确定审计重点提供依据。

 


附:union和union all 的区别

在数据库中,union和union all关键字都是将两个结果集合并为一个,但这两者从使用和效率上来说都有所不同。

union在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。

如: 

select * from test_tab1 

union 

select * from test_tab2 

这个SQL在运行时先取出两个表的结果,再用排序空间进行排序删除重复的记录,最后返回结果集,如果表数据量大的话可能会导致用磁盘进行排序。

而union all只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。

从效率上说,union all要比union快很多,所以,如果可以确认合并的两个结果集中不包含重复的数据的话,那么就使用union all,如下:

select * from test_tab1

union all

select * from test_tab2

 使用 union 组合查询的结果集有两个最基本的规则:

1、所有查询中的列数和列的顺序必须相同。

2、数据类型必须兼容





打印本页 关闭窗口
 
Produced By 大汉网络 大汉版通发布系统