随着AO现场审计实施系统在审计系统中的广泛应用,给审计工作带来极大的方便。但大部分审计人员对SQL SERVER软件比较熟悉,而AO软件是基于ACCESS数据库开发的软件,查询使用的函数和SQL SERVER有很大的差别,往往因不了解两者函数的区别,给AO软件的推广带来不便。笔者在审计过程中发现,在两款软件中相同类型的查询通过使用不同的函数能取得同样的效果。以下是笔者在审计过程中收集的几个相同功能函数: 一、中间截取字符串函数substring和mid 查询要求:从18位身份证号码截取出生年月查询 1.Substring是SQL SERVER中使用的中间截取函数,使用方法为substring(expression,start,length),expression:字符串、二进制字符串、文本、图像、列或包含列的表达式。但不包含聚合函数的表达式;start:整数或可以隐式转换为int的表达式,指定子字符串的开始位置;length整数或可以隐式转换为int的表达式,指定了字符串的长度。 查询语法为: Select substring(身份证号,7,8)as出生年月 From表名 2.Mid是AO中使用的中间截取字符串函数,使用方法为mid(expression,start,length),字段含义同上。 查询语法为: Select mid(身份证号,7,8)as出生年月 From表名 二、模函数%和mod 查询要求:查询现金支出为整万元的凭证 1.模函数是用来求两数相除后的余数,在sql server中用%,格式为number % divisor,number为被除数,Divisor为除数。查询语法为: Select* From现金日记账 Where贷方金额% 10000=0 需要注意的是,上述查询中“贷方金额”的数据类型一定要是整形(int),如果不是需要用cast进行转换,即:cast(贷方金额as int)。 2.在AO中函数格式为:number mod divisor,即是两个数值表达式作除法运算后的余数,number为被除数。Divisor为除数。如果divisor为零,函数MOD返回错误值 DIV/0!。查询语法为: Select* From现金日记账 Where贷方金额mod 10000=0 以上两款软件查询结果和字段的数据类型均相同,使用方法也一样。 三、搜索函数case when和iif 查询要求:计算个人所得税查询 1.在sql server中,使用case when搜索函数可以动态更新查询结果。 查询语法: Select姓名,薪金总额,case When薪金总额-2000 between 0 and 500 then(薪金总额-2000)*0.05 When薪金总额-2000 between 500.1 and 2000 then (薪金总额-2000)*0.1-25 When薪金总额-2000 between 2000.1 and 5000 then(薪金总额-2000)*0.15-125 When薪金总额-2000 between 5000.1 and 20000 then (薪金总额-2000)*0.2-375 When薪金总额-2000 between 20000.1 and 40000 then (薪金总额-2000)*0.25-1375 When薪金总额-2000 between 40000.1 and 60000 then (薪金总额-2000)*0.3-3375 When薪金总额-2000 between 60000.1 and 80000 then (薪金总额-2000)*0.35-6375 When薪金总额-2000 between 80000.1 and 100000 then (薪金总额-2000)*0.4-10375 When薪金总额-2000>100000 then(薪金总额-2000)*0.45-15375 End应缴个人所得税 From职工薪金汇总表 2.在AO软件中,使用iif(expr,truepart,falsepart)函数来进行搜索查询,其中expr:必要参数,用来判断真伪的表达式;truepart:必要参数,如果expr为True,则返回这部分的值或表达式;falsepart:必要参数,如果expr为False,则返回这部分的值或表达式。 查询语法为: select[姓名],[薪金总额],iif([薪金总额]-2000<=500,([薪金总额]-2000)*0.05,iif([薪金总额]-2000<=2000,([薪金总额]-2000)*0.1-25,iif([薪金总额]-2000<=5000,([薪金总额]-2000)*0.15-125,iif([薪金总额]-2000<=20000,([薪金总额]-2000)*0.2-375,iif([薪金总额]-2000<=40000,([薪金总额]-2000)*0.25-1375,iif([薪金总额]-2000<=60000,([薪金总额]-2000)*0.3-3375,iif([薪金总额]-2000<=80000,([薪金总额]-2000)*0.35-6375,iif([薪金总额]-2000<=100000,([薪金总额]-2000)*0.4-10375,([薪金总额]-2000)*0.45-15375))))))))as应缴个人所得税