2010-04-16 02:38:19
在今年的财政同级审中,我们充分利用AO转换模板和SQL Server数据视图语句,实现了财政专户会计核算系统数据快速准确的AO转换。考虑到财政部门会计核算系统多使用SQL Server作为底层数据库,现将数据转换经验提供给大家,仅供参考。具体操作步骤如下: 一、备份原始数据库 登录财政专户会计核算系统主机,进入SQL Server企业管理器,打开本地服务器,找到财政专户后台数据库。点击右键查看数据库属性,记住数据文件和事务日志名,方便以后还原。点击右键进入所有任务→备份数据库,指定存放路径进行数据库完全备份。 二、还原数据库 进入审计主机SQL Server企业管理器,打开本地服务器的数据库栏目,单击右键进入新建数据库,给数据库起一个名字A,单击数据文件和事务日志选项卡,修改数据文件和日志名称,使数据文件名及事务日志名与备份数据的名称一致,否则无法还原。选中数据库A,点击右键进入所有任务→还原数据库,选择[从设备还原],指定存放备份文件的路径完成还原。 三、基本数据表整理 主要内容是依据AO转换模板需求的4张表:AT_DWYE(单位余额表)、AV_KMYE(科目余额表)、kmbm(科目编码表)、VIEW_PZ(凭证库表),利用审计主机还原后的数据库视图SQL语句对数据库进行整理。 进入SQL Server查询分析器,打开导入的新建数据库A,点击视图选项,找到dbo.AV_DWYE、dbo.AV_KMYE、dbo.VIEW_PZ三张视图,逐一在三张视图表上单击右键,选择“编辑”,这样就在查询分析器中编辑窗体中生成了相应的视图SQL语句。充分利用这些SQL语句,生成我们需要的四张表。 1、 单位余额表 SELECT B.YF, A.DWH, A.DWM, DWYE = ISNULL(B.YE, 0), A.MXBZ INTO AT_DWYE FROM AT_DWZD AS A LEFT JOIN ( SELECT A.yf, dwh = LEFT(A.dwh, 3), ye = SUM(A.ye) FROM ( select M.YF,dwh=d.dwh,ye=sum(m.ye) from at_dwzd d join at_kmzd k on d.dwh=k.dwh right join at_mxz m on k.kmh=m.kmh where d.mxbz=1 and m.SXH=ISNULL((SELECT MAX(N.SXH) FROM AT_MXZ N WHERE N.KMH=M.KMH AND N.YF=M.YF),0) group by M.YF,d.dwh) AS A WHERE len(rtrim(A.dwh)) > 3 GROUP BY A.yf, LEFT(A.dwh, 3) UNION SELECT A.yf, dwh = LEFT(A.dwh, 6), ye = SUM(A.ye) FROM ( select M.YF,dwh=d.dwh,ye=sum(m.ye) from at_dwzd d join at_kmzd k on d.dwh=k.dwh right join at_mxz m on k.kmh=m.kmh where d.mxbz=1 and m.SXH=ISNULL((SELECT MAX(N.SXH) FROM AT_MXZ N WHERE N.KMH=M.KMH AND N.YF=M.YF),0) group by M.YF,d.dwh) AS A WHERE len(rtrim(A.dwh)) > 6 GROUP BY A.yf, LEFT(A.dwh, 6) UNION SELECT A.yf, A.dwh, A.ye FROM (select M.YF,dwh=d.dwh,ye=sum(m.ye) from at_dwzd d join at_kmzd k on d.dwh=k.dwh right join at_mxz m on k.kmh=m.kmh where d.mxbz=1 and m.SXH=ISNULL((SELECT MAX(N.SXH) FROM AT_MXZ N WHERE N.KMH=M.KMH AND N.YF=M.YF),0) group by M.YF,d.dwh) AS A) AS B ON A.DWH = B.DWH 2、科目余额表 SELECT B.YF, A.KMH, A.KMMC, KMYE = ISNULL(B.YE, 0), A.MXBZ INTO AV_KMYE FROM AT_KMZD AS A LEFT JOIN ( SELECT A.yf, kmh = LEFT(A.kmh, 3), ye = SUM(A.ye) FROM at_mxz A WHERE len(rtrim(A.kmh)) > 3 AND A.SXH=ISNULL((SELECT MAX(B.SXH) FROM AT_MXZ B WHERE B.KMH=A.KMH AND B.YF=A.YF),0) GROUP BY A.YF,LEFT(A.KMH,3) UNION SELECT A.yf, kmh = LEFT(A.kmh, 6), ye = SUM(A.ye) FROM at_mxz A WHERE len(rtrim(A.kmh)) > 6 AND A.SXH=ISNULL((SELECT MAX(B.SXH) FROM AT_MXZ B WHERE B.KMH=A.KMH AND B.YF=A.YF),0) GROUP BY A.YF,LEFT(A.KMH,6) UNION SELECT A.yf, kmh = LEFT(A.kmh, 9), ye = SUM(A.ye) FROM at_mxz A WHERE len(rtrim(A.kmh)) > 9 AND A.SXH=ISNULL((SELECT MAX(B.SXH) FROM AT_MXZ B WHERE B.KMH=A.KMH AND B.YF=A.YF),0) GROUP BY A.yf, LEFT(A.kmh, 9) UNION SELECT A.yf, kmh = LEFT(A.kmh, 12), ye = SUM(A.ye) FROM at_mxz A WHERE len(rtrim(A.kmh)) > 12 AND A.SXH=ISNULL((SELECT MAX(B.SXH) FROM AT_MXZ B WHERE B.KMH=A.KMH AND B.YF=A.YF),0) GROUP BY A.yf, LEFT(A.kmh, 12) UNION SELECT A.yf, kmh = LEFT(A.kmh, 15), ye = SUM(A.ye) FROM at_mxz A WHERE len(rtrim(A.kmh)) > 15 AND A.SXH=ISNULL((SELECT MAX(B.SXH) FROM AT_MXZ B WHERE B.KMH=A.KMH AND B.YF=A.YF),0) GROUP BY yf, LEFT(kmh, 15) UNION SELECT yf, kmh, ye FROM at_mxz A WHERE A.SXH=ISNULL((SELECT MAX(B.SXH) FROM AT_MXZ B WHERE B.KMH=A.KMH AND B.YF=A.YF),0) ) AS B ON A.KMH = B.KMH WHERE b.yf IS NOT NULL 3、科目编码表 SELECT KMH,KMMC INTO kmbm FORM AT_KMZD 4、凭证库表 SELECT AT_PZFL.ZY, zzkm.KMMC AS zkmm, mxkm.KMMC AS mxkmm,AT_PZFL.JFJE,AT_PZFL.DFJE,AT_PZFL.KMH,AT_PZFL.PZH, AT_PZFL.YF, AT_PZFL.SXH, at_pzfl.pzlb INTO VIEW_PZ FROM AT_PZFL INNER JOIN AT_KMZD mxkm ON AT_PZFL.KMH = mxkm.KMH INNER JOIN AT_KMZD zzkm ON LEFT(AT_PZFL.KMH, 3) = zzkm.KMH 说明:为了深入理解和掌握视图的作用,学习借鉴视图编写语句,上述生成新表的步骤是必要的。有一个捷径可走,在从SQL数据库导出数据时,也可直接利用视图(科目代码表除外),进行数据转换。 四、数据中间转换 考虑到AO转换模板利用的数据类型是.mdb,我们需要把SQL数据库中生成的4张新表:AT_DWYE、AV_KMYE、kmbm、VIEW_PZ导出到Access数据库。 进入审计主机数据库,打开企业管理器,打开导入的新建数据库A,选择“表”,找到新生成的4张表,逐一在4张表上进行如下操作:点击选择需要导出的表,右键单击后选择“所有任务”,选择“导出数据”,点击下一步,选择数据源为“用于SQL Server 的Microsoft OLE DB 提供程序”,选择数据库A,单击下一步,选择目的“Microsoft Access”并指定路径和文件名(为新建的Access文件名),单击下一步,选择源表为生成的4张新表,“目的”表名改为AO转换模板需要的表名,单击下一步完成从SQL数据库转换为Access数据的目的。 五、导入AO生成账套 我们在去年财政同级审中,已经把4张表导入AO系统时,生成了AO转换模板。此时,我们只需要在AO系统中,新建账套后选择“模板管理→使用模板采集转换”,选择存放4张表的Access数据库,按操作步骤提示,即可轻松完成数据转换。 我们已把转换模板导出,请需要模板的审计人员及时跟我们联系。联系Email:zbsjycf@sina.com。(作者:袁春风 山东淄博市审计局) |
(本文内容仅为作者个人观点,不代表任何审计机关和本网站的观点,未经许可,不得转载) |