核实某公交公司免费和优惠公交卡 应补贴金额审计事项案例

25.01.2016  20:06

  一、项目背景

T市某公交公司于2011年启用IC卡收费系统。根据国家、省相关文件精神和C市人民政府文件《关于优先发展城市公共交通的若干意见》,T市人民政府每年按免费人群(70周岁以上老人)0.80元每次,学生0.30元每次的标准对公交公司予以补贴。根据T市政府第19次常务会议纪要(2014年9月24日),对户籍在本市,持有第二代《中华人民共和国残疾人证》的肢体、视力二级以上70周岁以下的残疾人,可以免费乘坐市区公交车。对公交公司按照老年卡结算方式予以补贴。2016年初,公交公司按惯例申请财政补贴,市政府将此项目交由市审计局核实。

二、审计范围和内容

(一)时间范围:2015年度 

(二)对象范围:T市某公交公司

(三)主要内容:核实2015年该公司老年卡、学生卡、爱心卡刷卡次数,以此为基础计算应获取市政府财政补贴金额。

三、审计步骤和方法

(一)采集数据

1.公交公司使用的公交IC卡收费刷卡管理系统,后台为SQL2000数据库。因初次要求提供的数据库备份文件数据量较大,还原未成功。故要求系统管理人员将2015年老年卡、学生卡、爱心卡刷卡明细表及学生卡年审表、售卡明细表单独导出为新数据库,提供给审计组,包括两个数据文件:tk_center2015_Data.MDF和tk_center2015_Log.LDF

主要数据表有:

TK_CARD_TRADELNK    老年卡刷卡明细

TK_CARD_TRADEXSK    学生卡刷卡明细

TK_CARD_TRADEXSK    爱心卡刷卡明细

ZY_CARD_SELL            售卡明细

ZY_CARD_YEARCHECK  年审明细 

 

各表主要字段内容如下:

card_no卡编号 

ss_times充值次数

card_serial卡号

card_type卡类型(2为老年卡,3为学生卡,6为爱心卡)

riding_time乘车时间(刷卡时间)

paid消费金额

card_money卡内剩余金额

intt_city_code城市编号

group_no线路号

bus_no车辆号

collect_time数据采集日期

id_no  身份证号码

2.T市残联提供的“残疾人免费乘车爱心卡”办理情况登记表为EXCEL表格,主要内容有:

姓名,性别,年龄,残疾类别,残疾人证号,住址,电话,办理时间

(二)导入数据

1.附加所采集的公交公司数据库,数据库名称为[tk_center2015]。

2.将残联提供的电子表格导入到附加后的[tk_center2015]数据库中。

(三)审计思路:审计所需核实的为公交公司老年卡、学生卡、爱心卡刷卡次数,该公司已分别提供3种公交卡2015年刷卡明细,每条记录即一次刷卡记录。审计人员除了验证所提供数据是否为2015年度数据,有无人为增加记录等事项外,最重要的是根据售卡明细表中的办理人身份证号码,查找不符合学生卡、老年卡的人员信息;根据残联提供的资料,核对不符合爱心卡办理条件的人员信息。在此基础上查询这些不符合的卡号在2015年刷卡次数,从查询的总次数中扣减,分别计算出财政应补贴金额。

(四)分析数据

/***************学生卡***************/

--查询学生卡刷卡记录中有无超出年范围的 

SELECT  *

FROM  [tk_center2015].[dbo].[TK_CARD_TRADEXSK]

where  year(riding_time)<>2015 

   

--查询有无同一张学生卡刷卡时间相同的 

SELECT  distinct  [CARD_NO],[CARD_SERIAL],[RIDING_TIME]

FROM  [tk_center2015].[dbo].[TK_CARD_TRADEXSK]

group  by  [CARD_NO],[CARD_SERIAL],[RIDING_TIME]

having  count([RIDING_TIME])>1

 

   

--查询学生卡年度刷卡次数 

SELECT  count(*)

FROM  [tk_center2015].[dbo].[TK_CARD_TRADEXSK]

where  [PAID]=0.5

     

--查询身份证号为位的学生卡,已满周岁即年之前出生的人员年刷卡次数(对于高中已毕业的人员年龄只能为估算)

SELECT  *

FROM  [tk_center2015].[dbo].[TK_CARD_TRADEXSK]

where  [CARD_NO]      in

(SELECT  CARD_NO

FROM  dbo.ZY_CARD_SELL  where  substring(ID_NO,7,4)<'1995'

and  CARD_TYPE=3  and  len(ID_NO)=18)

and  [PAID]=0.5 

   

--查询已满周岁的人员且在年有刷卡记录的具体人员信息 

SELECT  *

FROM  dbo.ZY_CARD_SELL  where 

[CARD_NO]      in(

SELECT  [CARD_NO]

FROM  [tk_center2015].[dbo].[TK_CARD_TRADEXSK]

where    [PAID]=0.5   

and  [CARD_NO]  in(   

SELECT  CARD_NO

FROM  dbo.ZY_CARD_SELL  where  substring(ID_NO,7,4)<'1995'

and  CARD_TYPE=3  and  len(ID_NO)=18))

   

--查询身份证号为位的学生卡,已满周岁即年之前出生的人员年刷卡次数(无结果)

SELECT  *

FROM  [tk_center2015].[dbo].[TK_CARD_TRADEXSK]

where    [PAID]=0.5   

and  [CARD_NO]  in( 

SELECT    CARD_NO

FROM  dbo.ZY_CARD_SELL  where  '19'+substring(ID_NO,7,2)<'1995'

and  CARD_TYPE=3  and  len(ID_NO)=15  ) 

   

--查询身份证号非位也非位,或者为空白或空值的学生卡于年使用的次数

SELECT  *

FROM  [tk_center2015].[dbo].[TK_CARD_TRADEXSK]

where    [PAID]=0.5   

and  [CARD_NO]  in( 

SELECT  CARD_NO

FROM  dbo.ZY_CARD_SELL  where  CARD_TYPE=3 

and  (len(ID_NO)<>18  and  len(ID_NO)<>15)  or  ID_NO=''  or  ID_NO  is  null)

 

--查询上述学生卡在年有刷卡记录的具体人员信息 

SELECT  *

FROM  dbo.ZY_CARD_SELL  where 

[CARD_NO]      in

(SELECT  [CARD_NO]

FROM  [tk_center2015].[dbo].[TK_CARD_TRADEXSK]

where    [PAID]=0.5   

and  [CARD_NO]  in(   

SELECT    CARD_NO

FROM  dbo.ZY_CARD_SELL  where  CARD_TYPE=3 

and  (len(ID_NO)<>18  and  len(ID_NO)<>15)  or  ID_NO=''  or  ID_NO  is  null))

   

--查询身份证号为位的学生卡,未满周岁即年之前出生的人员年使用次数(公交公司规定只要满足身高条件,不管年龄多小,都得办卡,因此将下限年龄放宽到周岁。查询结果基本为身份证号输入有误。)

 

SELECT  *

FROM  [tk_center2015].[dbo].[TK_CARD_TRADEXSK]

where  [CARD_NO]      in

(SELECT    [CARD_NO]

FROM  dbo.ZY_CARD_SELL  where  substring(ID_NO,7,4)>'2012'

and  CARD_TYPE=3  and  len(ID_NO)=18)

and  [PAID]=0.5

 

--查询上述学生卡在年有刷卡记录的具体人员信息

SELECT  *

FROM  dbo.ZY_CARD_SELL  where 

[CARD_NO]      in

(  SELECT  [CARD_NO] 

FROM  [tk_center2015].[dbo].[TK_CARD_TRADEXSK]

where  [CARD_NO]      in

(SELECT    [CARD_NO]

FROM  dbo.ZY_CARD_SELL  where  substring(ID_NO,7,4)>'2012'

and  CARD_TYPE=3  and  len(ID_NO)=18)

and  [PAID]=0.5)   

   

--查询年月日之前办卡,年月日之前未年审,月日之后仍能刷卡的人员具体信息(公交公司将每年的月日设为学生卡年审截止日期) 

SELECT  * 

into  未年审学生卡月日之后

FROM  dbo.ZY_CARD_SELL

where      CARD_NO  in

(SELECT  distinct  [CARD_NO] 

FROM  [tk_center2015].[dbo].[TK_CARD_TRADEXSK]

where  [CARD_NO]  not  in(

SELECT    [CARD_NO] 

FROM  [tk_center2015].[dbo].[ZY_CARD_YEARCHECK]

where    CARD_TYPE='3'  )

and  riding_time>='2015-10-01'

and  [PAID]=0.5)

and  SELL_TIME<'2015-01-01'

   

--查询上述学生卡在年月日之后刷卡次数

SELECT  *

FROM  [tk_center2015].[dbo].[TK_CARD_TRADEXSK]

where  [CARD_NO]  in

(SELECT  [CARD_NO]  from  未年审学生卡月日之后)

and  riding_time>='2015-10-01'

and  [PAID]=0.5

   

   

--查询身份证为位但日期不规范的学生卡年刷卡次数(须排除与其他几种情况重复的卡号) 

SELECT  *

into    身份证日期不规范的学生卡位不含其他情况次数

FROM  [tk_center2015].[dbo].[TK_CARD_TRADEXSK]

where  [CARD_NO]      in

(SELECT    [CARD_NO]

FROM  dbo.ZY_CARD_SELL  where

isdate(substring(cast(ID_NO  as  varchar),7,8))=0

and  len(ID_NO)=18  and  CARD_TYPE=3 

and    [CARD_NO]  not  in

(SELECT  CARD_NO

FROM  dbo.ZY_CARD_SELL  where  substring(ID_NO,7,4)<'1995'

and  CARD_TYPE=3  and  len(ID_NO)=18  )

and      [CARD_NO]  not  in

(SELECT        CARD_NO

FROM  dbo.ZY_CARD_SELL  where  CARD_TYPE=3 

and  (len(ID_NO)<>18  and  len(ID_NO)<>15)  or  ID_NO=''  or  ID_NO  is  null)

and      [CARD_NO]  not  in

(SELECT    [CARD_NO]

FROM  dbo.ZY_CARD_SELL  where  substring(ID_NO,7,4)>'2012'

and  CARD_TYPE=3  and  len(ID_NO)=18))

and  CARD_NO  not  in

(SELECT  [CARD_NO]  from  未年审学生卡月日之后)

and  [PAID]=0.5

   

--查询上述学生卡人员具体信息 

SELECT  *   

FROM  dbo.ZY_CARD_SELL  where 

  [CARD_NO]      in(

SELECT  distinct  [CARD_NO]

FROM  身份证日期不规范的学生卡位不含其他情况次数)

     

/***************老年卡***************/

--查询老年卡刷卡记录中有无超出年范围的 

SELECT  *

FROM  [tk_center2015].[dbo].TK_CARD_TRADELNK

where  year(riding_time)<>2015 

   

--查询有无同一张老年卡刷卡时间相同的(无结果)

SELECT  distinct  [CARD_NO],[CARD_SERIAL],[RIDING_TIME]

FROM  [tk_center2015].dbo.TK_CARD_TRADELNK

group  by  [CARD_NO],[CARD_SERIAL],[RIDING_TIME]

having  count([RIDING_TIME])>1

   

--查询老年卡年度刷卡总次数

SELECT  count(*)

FROM    dbo.TK_CARD_TRADELNK

   

--查询身份证号为位的老年卡,未满周岁即年之后出生的人员年刷卡次数 

SELECT  *

FROM  [tk_center2015].[dbo].TK_CARD_TRADELNK

where  [CARD_NO]      in

(SELECT  [CARD_NO]

FROM  dbo.ZY_CARD_SELL

where    substring(ID_NO,7,4)>'1945'

and  CARD_TYPE=2  and  len(ID_NO)=18  )

   

--查询上述老年卡在年有刷卡记录的具体人员信息

SELECT  *

FROM  dbo.ZY_CARD_SELL  where 

[CARD_NO]      in

(  SELECT  [CARD_NO] 

FROM  [tk_center2015].[dbo].TK_CARD_TRADELNK

where  [CARD_NO]      in

(SELECT  [CARD_NO]

FROM  dbo.ZY_CARD_SELL

where    substring(ID_NO,7,4)>'1945'

and  CARD_TYPE=2  and  len(ID_NO)=18  )  )

   

    --查询身份证号为位的老年卡,未满周岁即年之后出生的人员年刷卡次数(无结果)

SELECT  [CARD_NO]

FROM  dbo.ZY_CARD_SELL

where    '19'+substring(ID_NO,7,2)>'1945'

and  CARD_TYPE=2  and  len(ID_NO)=15   

   

--查询身份证号非位也非位,或者为空白或空值的老年卡于年使用的次数

SELECT  *

FROM  [tk_center2015].[dbo].TK_CARD_TRADELNK

where  [CARD_NO]  in( 

SELECT        CARD_NO

FROM  dbo.ZY_CARD_SELL  where  CARD_TYPE=2 

and  len(ID_NO)<>18  and  len(ID_NO)<>15  or  ID_NO=''  or  ID_NO  is  null)

 

--查询上述老年卡在年有刷卡记录的具体人员信息

SELECT  *

FROM  dbo.ZY_CARD_SELL  where 

[CARD_NO]      in

(SELECT    [CARD_NO]

FROM  [tk_center2015].[dbo].TK_CARD_TRADELNK

where  [CARD_NO]  in( 

SELECT    CARD_NO

FROM  dbo.ZY_CARD_SELL  where  CARD_TYPE=2 

and  len(ID_NO)<>18  and  len(ID_NO)<>15  or  ID_NO=''  or  ID_NO  is  null))

         

--查询身份证为位但日期不规范的老年卡年刷卡次数(须排除与其他几种情况重复的卡号)

SELECT  * 

into      身份证日期不规范的老年卡位不含其他情况次数

FROM  [tk_center2015].[dbo].[TK_CARD_TRADELNK]

where  [CARD_NO]      in

(SELECT    [CARD_NO]

FROM  dbo.ZY_CARD_SELL  where

isdate(substring(cast(ID_NO  as  varchar),7,8))=0

and  len(ID_NO)=18  and  CARD_TYPE=2)   

and  [CARD_NO]    not  in

(SELECT    CARD_NO

FROM  dbo.ZY_CARD_SELL  where  CARD_TYPE=2 

and  len(ID_NO)<>18  and  len(ID_NO)<>15  or  ID_NO=''  or  ID_NO  is  null)

and    [CARD_NO]  not  in

(SELECT  [CARD_NO]

FROM  dbo.ZY_CARD_SELL

where    substring(ID_NO,7,4)>'1945'

and  CARD_TYPE=2  and  len(ID_NO)=18)

   

--查询上述老年卡在年有刷卡记录的具体人员信息

SELECT  *   

FROM  dbo.ZY_CARD_SELL  where 

[CARD_NO]      in(

SELECT  distinct  [CARD_NO]

FROM  身份证日期不规范的老年卡位不含其他情况次数)

   

   

--查询年月日之前出售的,年月日之前未年审但月日之后仍在使用的老年卡(公交公司考虑到老年人出行方便,将每年的月日设为老年卡年审最后截止日期)     

SELECT  *  from

dbo.ZY_CARD_SELL

where  [CARD_NO]  in(

SELECT  distinct  [CARD_NO] 

FROM  [tk_center2015].[dbo].[TK_CARD_TRADELNK]

where  [CARD_NO]  not  in(

SELECT    [CARD_NO] 

FROM  [tk_center2015].[dbo].[ZY_CARD_YEARCHECK]

where    CARD_TYPE='2'  )

and  riding_time>='2015-05-01')

and  SELL_TIME<'2015-01-01'

             

--查询上述老年卡年月日之后刷卡次数

SELECT  *  from  dbo.TK_CARD_TRADELNK

where    [CARD_NO]  in(

SELECT  [CARD_NO]  from

dbo.ZY_CARD_SELL

where  [CARD_NO]  in(

SELECT  distinct  [CARD_NO] 

FROM  [tk_center2015].[dbo].[TK_CARD_TRADELNK]

where  [CARD_NO]  not  in(

SELECT    [CARD_NO] 

FROM  [tk_center2015].[dbo].[ZY_CARD_YEARCHECK]

where    CARD_TYPE='2'  )

and  riding_time>='2015-05-01')

and  SELL_TIME<'2015-01-01')

and  riding_time>='2015-05-01'

     

/***************爱心卡***************/

--查询爱心卡有无在年月日政府会议纪要决定之前办理的(无结果)

SELECT  *

FROM  dbo.ZY_CARD_SELL

where   

CARD_TYPE=6  and  SELL_TIME<='2014-10-07'

   

--查询爱心卡刷卡记录中有无超出年范围的   

SELECT  *

FROM  [tk_center2015].[dbo].[TK_CARD_TRADEAXK]

where  year(riding_time)<>2015 

   

--查询爱心卡年度刷卡总次数

SELECT  count(*)

FROM

dbo.TK_CARD_TRADEAXK

   

--查询有无同一张爱心卡刷卡时间相同的

SELECT  distinct  [CARD_NO],[CARD_SERIAL],[RIDING_TIME]

FROM  [tk_center2015].dbo.TK_CARD_TRADEAXK

group  by  [CARD_NO],[CARD_SERIAL],[RIDING_TIME]

having  count([RIDING_TIME])>1

 

  --将市残联备案的办卡登记表中残疾证号码减去后两位即得出办卡人身份证号

alter  table  dbo.残疾人办卡名单  add      身份证号  varchar(18)   

update  dbo.残疾人办卡名单  set  身份证号=left(残疾人证号,18)

 

--根据姓名与身份证号查询办理爱心卡人员名单不在残疾人备案名单中的具体信息

select  *  from  dbo.ZY_CARD_SELL  a

left  join  dbo.残疾人办卡名单  b

on    a.CARD_NAME=b.姓名

and  a.ID_NO=b.身份证号

where  a.CARD_TYPE='6'

and  b.序号  is  null

 

--查询上述爱心卡年刷卡次数(须向公交公司了解,排除因非机器读卡,由人工输入造成的姓名或身份证号错误情况)

select  *  from  dbo.TK_CARD_TRADEAXK

where  CARD_NO  in

(select  [CARD_NO]  from  dbo.ZY_CARD_SELL  a

left  join  dbo.残疾人办卡名单  b

on    a.CARD_NAME=b.姓名

and  a.ID_NO=b.身份证号

where  a.CARD_TYPE='6'

and  b.序号  is  null)