如何应用SQL进行商业银行非现场审计(初稿3)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浅谈SQL在商业银行非现场审计中的应用
徐华椰
SQL(Structured Query Language)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,对不同底层结构的不同数据库系统,可以使用相同的SQL语言作为数据输入与管理的接口。
商业银行需要存储的数据量很大,大量数据使得在非现场审计过程中不容易快速查找审计疑点,发掘审计重点。如果我们将数据库导入SQL软件,编写几条简单的语句就会容易查找出你所想关注的疑点、重点。
一、select语句的应用
select 中文意思为选择、挑选,是SQL数据库中常用的函数。商业银行非现场审计的过程就是利用各种条件进行数据筛选的过程,如果我们有下列凭证表,查询卡存款科目的凭证,可以
SELECT 日期,凭证号,科目代码,金额,对方科目,摘要From 凭证表
Where 科目代码like “46600”
在这里where后面相当于我们需要查询的条件,通过添加更多的条件可以使我们所能查询出来的数据更加精确,例如我们想要查询活期存款转入银行卡可以使用以下查询语句:SELECT 日期,凭证号,科目代码,金额,对方科目,摘要From 凭证表
Where 科目代码like “46102”and 对方科目代码like “46600”
用and或者or进行多条件查询可以大大降低我们工作量,帮助我们筛选出我们所需要的内容。
此外我们还可以运用select语句选择若干列,在一个表中可能有很多列,其中有些列对于非现场审计是没有意义的,不需要关注所有的列,而是要有选择地选取重点列。在建立一个查询时,要确定的就是这个查询将从数据表中选取哪些信息,也就是哪些列。
例如:select 凭证号,金额,对方科目
From 凭证表
在select后面列出需要显示的列名称,并且以英文的逗号分隔,哪些没有列出的列,将不显示在结果中。
此外,有时候要求我们在打印列的时候按一定的顺序输出,或者为了阅读方便,我们也可调整列的输出顺序。
例如:select 对方科目,凭证号,金额
From 凭证表
虽然SELECT 语句的完整语法较复杂,但是其主要的子句可归纳如下:
SELECT [ALL|DISTINCT]<目标表达式1>[,<目标表达式2>]…
FROM <表名1>[,表名2]…
[where<条件表达式>]
[group by <列名1>][HAVING<条件表达式>]]
[order by <列名2>][ASC|DESC]]
注:“[]”表示可选项目,“<>”表示必须按项目,“|”符号表示多选一。在select语句后面跟“目标表达式”而不是“列”,是因为在构造查询时,可能会利用表达式生成新的列。
其中Group By语句从英文的字面意义上理解就是“根据(by)一定的规则进行分组(Group)”。它的作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。ORDER BY 语句用于根据指定的列对结果集进行排序。ORDER BY 语句默认按照升序对记录进行排序。如果您希望按照降序对记录进行排序,可以使用DESC 关键字。
二、AS子句的应用
如果在目标表示式中增加AS子句的应用,就能让我们更效
率的查找出审计疑点、重点。
通常我们在一个表中取出字段时,字段名通常默认为字段创建时制定的名称。可是在大多数情况下,从被审计单位信息系统中采取的原始数据,其字段名字并不如我们示例数据那样直观。这些字段名在其信息系统中可能采用了英文缩写,也可能是汉语拼音,还可能是规则的编码。为使查询的结果直观明了,就必须对字段名进行操作,用容易理解的、能表示经济活动意义的、具有审计业务特征的名字来代替原来的字段名,直接是别名。
在select语句中,可以在字段名后用AS子句来指定别名。例如,可以用“科目代码”来代替“KMDM”,用“日期”来代替“RQ”。需要说明的是,用AS子句指定别名,并不能改变原来数据表中的字段名,而是仅仅改变查询结果显示的标题。要改变数据表的字段名,必须重新定义数据库的结构。首先我们来了解一下AS子句:
例:SELECT KMDM AS 科目代码
RQ AS 日期
DYKM AS 对应科目
有时候,需要查询的信息不能够在原始数据中直接反应,而是要对原始数据进行一定的运算处理才能够获得,例如对固定资产进行审计时,通过设备的原值、使用年限、残值率可以计算设备的折旧率,通过折旧率可以计算设备的应提折旧。
例:SELECT 固定资产名称固定资产原值,使用年限,残值率,折旧率=(固定资产原值-固定资产原值*残值率*使用年限)/固定资产原值/使用年限
From 固定资产折旧表
上面那些实例都是查询所有记录,在更多情况下,审计人员需要根据自己的思路确定重点疑点,查看特定的记录,按照一定的条件查询筛选数据。
SQL中常用的函数:
AVG 计算一列值的平均值
COUNT 统计一列中值的个数
MAX 求一列值中的最大值
MIN 求一列值中的最小值
SUM 计算一列值的总和
STDDEV 计算一列值的标准差
VARIANCE 计算一列值的方差
ABS 返回数字的绝对值
INT 将数字向下取证到最接近的整数
MID 从文本中抽取一部分,从起始位置start抽取,长度为n Year 返回日期值中某年的整数
Month 返回日期值中某月的整数
Day 返回日期值中某日的整数
用于比较大小的运算符包括:
=、>、<、>=、<=、<>
例在我们需要查询的凭证数据是,我们希望查询到10万以上的现金取款,可以建立下面的查询:
SELECT 科目代码,凭证号,金额,摘要
From 凭证表
Where 借方金额>100000
这个查询的运行结果就是取现超过100000的凭证
有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行join。
JOIN连接组合两个表中的字段记录,包括三种:
INNER JOIN运算式:连接组合两个表中的字段记录。
LEFT JOIN运算式:连接组合两个表中的字段记录,并将包含了LEFT JOIN左边表中的全部记录。
RIGHT JOIN运算式:连接组合两个表中的字段记录,并将包含了RIGHT JOIN右边表中的全部记录。
例如我们有客户信息表和凭证表,我们通过Join on将俩个表联系在一起再结合前边的select语句更有利于我们直观的分析数据。