AO2011导入国库集中支付系统3.0的辅助账资料
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
AO2011导入国库集中支付系统3.0的辅助账
目前我省财政系统总预算软件已经升级至3.0,笔者在此分享一下导入该软件辅助账的过程,和大家共同研究。
该系统的收支明细使用了辅助核算,所以如果只导入科目表、余额表和凭证表,只能看到收支的最顶级科目,而无法看到收支明细账,所以必须再导入另外三张表:辅助信息表,辅助余额表和辅助凭证表。
首先将用到的表从ORACLE导入SQL SERVER2008R2,此过程在此就不演示了,需要的表:ELE_ACCOUNTANT_SUBJECT(科目表),GL_REMAIN(余额表),GL_VOUCHER(凭证主表),GL_VOUCHER_DETAIL(凭证子表)。
接下来整理表:
一、科目表
select distinct CHR_CODE科目编码,CHR_NAME科目名称,IS_DEBIT余额方向
into科目表2015
from dbo.ELE_ACCOUNTANT_SUBJECT
where SET_YEAR='2015'and is_deleted=0 and SUBJECT_KIND=0
and ST_ID like'{802AD1C3-0F37-4A88-BACF-E7959D5446AB}'
order by CHR_CODE
--SET_YEAR年份/is_deleted是否删除/SUBJECT_KIND科目类型/ST_ID账套号
二、余额表:
--余额表明细
select AS_CODE科目编码,BALANCE年初余额
into yeb
from dbo.GL_REMAIN
where SET_YEAR='2015'and ST_ID like
'{802AD1C3-0F37-4A88-BACF-E7959D5446AB}'AS_CODE byorder
--将余额表按科目编码进行汇总求和年初余额,SUM(年初余额)select科目编码
yeb_1 into yeb
from by科目编码group
--查看余额表有几级科目yeb_1 科目编码LEN distinctselect()from
--以下操作是将下级科目求和汇总成上级科目并插入到余额表中
--末级长度为九的下级科目求和汇总成上级科目
insert into yeb_1
select LEFT(科目编码,7)科目编码,SUM(年初余额)年初余额
from yeb_1
where LEN(科目编码)=9
group by left(科目编码,7)
--末级长度为七的下级科目求和汇总成上级科目
insert into yeb_1
select LEFT(科目编码,5)科目编码,SUM(年初余额)年初余额
from yeb_1
where LEN(科目编码)=7
group by left(科目编码,5)
--末级长度为五的下级科目求和汇总成上级科目
insert into yeb_1
select LEFT(科目编码,3)科目编码,SUM(年初余额)年初余额
from yeb_1
where LEN(科目编码)=5
group by left(科目编码,3)
--余额表汇总
select a.科目编码,a.科目名称,a.余额方向,年初余额=case
when年初余额is null then 0
else年初余额
end
into余额表 2015
from kmb a join yeb_1b on a.科目编码=b.科目编码
三、凭证表:
--凭证主表
select VOUCHER_ID,VOU_DATE凭证日期,VOUCHER_NO凭证流水号
into pz_zb
from GL_VOUCHER
where SET_YEAR='2015'and ST_ID like
'{802AD1C3-0F37-4A88-BACF-E7959D5446AB}'
VOUCHER_NO VOU_DATE,by order账套号--SET_YEAR年份/ST_ID
凭证表明细--select VOUCHER_ID,VOUCHER_DETAIL_ID,AS_CODE科目编码,AS_NAME科目名称,
remark摘要,DEB_MONEY借方金额,CRE_MONEY贷方金额,EN_CODE单位编码,EN_NAME
case
=预算编码,单位名称.
when IN_BS_CODE is not null
then IN_BS_CODE
when BS_CODE is not null
BS_CODE
then
end,
预算名称=case
when IN_BS_NAME is not null
then IN_BS_NAME
when BS_NAME is not null
BS_NAME
then
end
into pz_mx
from dbo.GL_VOUCHER_DETAIL
where ST_ID like'{802AD1C3-0F37-4A88-BACF-E7959D5446AB}'
order by VOUCHER_ID
--凭证表汇总
select b.VOUCHER_ID源凭证号,a.VOUCHER_DETAIL_ID分录号,b.凭证流水号,b.凭证日期,a.科目编码,a.科目名称,a.摘要,a.借方金额,a.贷方金额,a.单位编码,a.单位名称,a.预算编码,a.预算名称
into凭证表2015
from pz_mx a
left join pz_zb b on a.VOUCHER_ID=b.VOUCHER_ID
order by month(b.凭证日期),b.凭证流水号
这里有一点非常重要,凭证流水号一定要转换成字符格式,否则后面AO无法正确导入。
四、辅助信息表和辅助余额表
实际上辅助信息表的所有字段都包含在了辅助余额表里面,所以在此只需生成辅助余额表:
SELECT DISTINCT A.科目编码,年初余额=0,余额方向,'单位分类'辅助类型,单位编码辅助编码,单位名称辅助名称
INTO辅助余额表
from凭证表A JOIN科目表B
ON A.科目编码=b.科目编码
WHERE left(A.科目编码,1)in('4','5')AND单位编码IS NOT NULL
UNION ALL