結構化查詢語言(Structured Query Language)簡稱SQL,是一種特殊目的的編程語言,是一種數據庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關係數據庫系統。以下是小編為大家整理的用SQL快速生成用友GRP-U8的AO財務賬套的方法,僅供參考,歡迎大家閲讀。
目前,很多地方使用了用友U8財務核算軟件,該軟件為客户端單機版,為與財政預算科目相對應,部分科目使用了輔助核算功能,各部門預算單位各建賬套,後台數據庫為SQL SERVER。AO2011備份文件中暫未有相關的用友U8可操作採集模板。各審計網站、雜誌也刊登了不少關於該財務軟件的AO轉換方法,但對於使用單位與財政預算科目相對應的輔助核算部分沒有簡單可行方法。下面是yjbys小編為大家帶來的關於用SQL快速生成用友GRP-U8的AO財務賬套的方法的知識,歡迎閲讀。
一、數據採集及結構分析
通過用友GRP-U8(R10)提供的後台數據管理工具,生成SQL數據庫備份數據(文件)。
打開SQL Server Management Studio,右鍵點擊數據庫->點擊“還原數據庫”->選擇“設備源”->點擊 ->“添加”,將上一步備份的SQL數據庫備份文件(文件)添加進來, 完成數據庫數據還原。
二、後台財務數據的整理
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 , , , , ,
into pzb
from gl_pzml a, gl_pznr b
where = and = and like '2015%'
--2015為採集>為採集數據年度,根據實際情況修改
pzb set pzrq=cast(pzrq as datetime);
三、導入AO形成賬套
打開AO,將整理後的3張表導入AO,利用AO的輔助導入功能,形成賬套。
需要説明兩點:一是採集轉換過程中有可能出現“科目餘額不符”等提示,這是由於該財務軟件的期初科目餘額表中只保存最末級有餘額的.科目餘額信息,AO採集轉換時有可能沒有彙總到上一級,但這一情況不影響AO的正常導入。二是1個單位的財務數據採集轉換後,再導入下一個單位的數據時,有可能出現採集數據失敗,原因不詳,退出AO,重新啟動即可。
用SQLSERVER查詢
具體操作:
根據rocesses中的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 rocesses
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 _exec_requests
WHERE session_id = @@spidWITH
啟用要指定的選項。
NO_INFOMSGS
取消嚴重級別從 0 到 10 的所有信息性消息。