会计电算化 百文网手机站

用SQL快速生成用友GRP-U8的AO财务账套的方法

时间:2022-11-10 09:46:11 会计电算化 我要投稿

用SQL快速生成用友GRP-U8的AO财务账套的方法2022

  结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。以下是小编为大家整理的用SQL快速生成用友GRP-U8的AO财务账套的方法,仅供参考,欢迎大家阅读。

用SQL快速生成用友GRP-U8的AO财务账套的方法2022

  目前,很多地方使用了用友U8财务核算软件,该软件为客户端单机版,为与财政预算科目相对应,部分科目使用了辅助核算功能,各部门预算单位各建账套,后台数据库为SQL SERVER。AO2011备份文件中暂未有相关的用友U8可操作采集模板。各审计网站、杂志也刊登了不少关于该财务软件的AO转换方法,但对于使用单位与财政预算科目相对应的辅助核算部分没有简单可行方法。下面是yjbys小编为大家带来的关于用SQL快速生成用友GRP-U8的AO财务账套的方法的知识,欢迎阅读。

  一、数据采集及结构分析

  通过用友GRP-U8(R10)提供的后台数据管理工具,生成SQL数据库备份数据(.bat文件)。

  打开SQL Server Management Studio,右键点击数据库->点击“还原数据库”->选择“设备源”->点击 ->“添加”,将上一步备份的SQL数据库备份文件(.bat文件)添加进来, 完成数据库数据还原。

  二、后台财务数据的整理

  2015为采集数据年度,根据实际情况修改

  1、科目代码表整理

  (gl_kmxx)

  Alter table gl_kmxx

  Add kmdm_ok var20)

  gl_kmxx

  set kmdm_ok = rtrim(kmdm)

  select kmdm_ok,kmmc into kmb from gl_kmxx

  where kjnd=2015

  2、科目余额表整理(gl_yeb)

  --生成新的余额表

  Select kmdm,ncj,ncd into yeb from gl_yeb

  where kjnd = 2015 and yeblx = 'B' --B表示余额表类型

  --二级科目余额汇总

  Insert into yeb

  select left(kmdm,5),case when (sum(ncj)- sum (ncd)>0)

  then (sum(ncj)- sum (ncd)) else 0 end ,

  case when (sum(ncj)- sum (ncd)<0)

  then (sum(ncd)- sum (ncj)) else 0 end

  from yeb where LEN(kmdm) = 7

  --如果有三级科目,则汇总到对应的二级科目,否则不汇总。

  group by left(kmdm,5) --一级科目汇总检查

  into yeb

  select left(kmdm,3) ,case when (sum(ncj)- sum (ncd)>0) then

  (sum(ncj)- sum (ncd)) else 0 end ,

  case when (sum(ncj)- sum (ncd)<0)

  then (sum(ncd)- sum (ncj)) else 0 end

  from yeb where len(kmdm) = 5

  --如果有二级科目,则汇总到对应的一级科目,否则不汇总。

  group by left(kmdm,3)

  3、凭证表整理

  (gl_pzml,gl_pznr)

  select a.pzh, a.pzrq, b.zy, b.kmdm, b.jdbz, b.je

  into pzb

  from gl_pzml a, gl_pznr b

  where a.kjqj=b.kjqj and a.pzh=b.pzh and a.kjqj like '2015%'

  --2015为采集>为采集数据年度,根据实际情况修改

  pzb set pzrq=cast(pzrq as datetime);

  三、导入AO形成账套

  打开AO,将整理后的3张表导入AO,利用AO的辅助导入功能,形成账套。

  需要说明两点:一是采集转换过程中有可能出现“科目余额不符”等提示,这是由于该财务软件的期初科目余额表中只保存最末级有余额的.科目余额信息,AO采集转换时有可能没有汇总到上一级,但这一情况不影响AO的正常导入。二是1个单位的财务数据采集转换后,再导入下一个单位的数据时,有可能出现采集数据失败,原因不详,退出AO,重新启动即可。

  用SQLSERVER查询

  具体操作:

  根据master.dbo.sysprocesses中的spid和blocked查找当前阻塞语句的主人,然后使用DBCC INPUTBUFFER ()查看阻塞语句。

  例子:

  打开三个查询分析器 A、B、C

  创建一个测试用的表 testDia

  Create Table testDia(ID int);

  在A执行以下语句:

  Begin tran

  Insert Into testDia Values(1);

  在B执行以下语句:

  Select * from testDia

  当前情况:B中没有显示结果,显示状态为等待

  在C执行以下语句:

  declare @spid int, @blocked int

  select top 1 @blocked = blocked

  from master.dbo.sysprocesses

  where blocked > 0

  DBCC INPUTBUFFER (@blocked)

  技术参考:

  DBCC INPUTBUFFER (Transact-SQL)

  显示从客户端发送到 Microsoft SQL Server 2005 实例的最后一个语句。

  DBCC INPUTBUFFER ( session_id [ , request_id ] )

  [WITH NO_INFOMSGS ]

  session_id

  与各活动主连接关联的会话 ID。

  request_id

  要在当前会话中精确搜索的请求(批)。

  下面的查询返回 request_id:

  复制代码

  SELECT request_id

  FROM sys.dm_exec_requests

  WHERE session_id = @@spidWITH

  启用要指定的选项。

  NO_INFOMSGS

  取消严重级别从 0 到 10 的所有信息性消息。