----------------------------------------------------------------------------------------
--私奔到火星总预算会计标准表
--编制时间:年月
--编制人:爱玩儿の编程小菜机
--数据源:(私奔到火星私奔到火星私奔到火星总预算会计年度备份账套)ZFKJ_ZFKJ_YEAR
--执行结果:生成(私奔到火星总预算会计标准表)DZ_ZYSKJ_BZB_
----------------------------------------------------------------------------------------
--执行过程:
--第一步,找表:
--1.查看每张表的行数;
selectschema_name(t.schema_id)as[Schema],t.nameasTableName,i.rowsas[RowCount]
fromsys.tablesast,sysindexesasi
wheret.object_id=i.idandi.indid<=1
orderby3 desc
go
--2.依次查看每张表及其主键;
--(1)凭证表--FLM
select*
fromZF1PD
--(2)会计科目与对应单位
select*
fromZF1STRUCT_ZZ_DW
--会计科目 单位
--ZZ_SCMDW_SCM
--52118777
--(3)功能分类科目表(其中:SCM字段对应凭证表KM_SCM字段)--SCM
select*
fromZF1KM01
--(4)功能分类科目与对应单位
select*
fromZF1STRUCT_KM_DW
--功能分类科目 单位
--KM_SCMDW_SCM
--90523091
--(5)操作记录
select*
fromZF1EVENT
--(6)业务部门(即私奔到火星归口股室)与对应单位
select*
from[ZF1STRUCT_ZG_DW]
--业务部门 单位
--ZG_SCMDW_SCM
--31972813
--(7)单位编码表(含修改时间)--SCM
select*
fromZF1DW01
--(8)单位编码表中的KMH对应该表中的VAL
--单位编码表中的SCM对应该表中的SCM
select*
fromZF1DY
--TYPEFIELDNAMEVALDY_FIELDSCM
--0DW_SCM 208223 DWH 2955
--0 KM_MJ_SCM 50101 KMMJH 12459
--(9)基础信息
select*
fromBM1PARM
--(10)***与业务部门对应关系表
select*
fromZF1STRUCT_KM_ZG
--*** 业务部门
--KM_SCMZG_SCM
--102413197
--(11)科目表--SCM
--包含SCM,NAME科目名称,KMH科目号,ATT科目类型,JC科目级次
--JD_FLAG借贷方向,SCM_1等信息的科目表
--275行
select*
fromZF1ZZ01
--(12)视图及数据源表--(重要)
select*
fromBB1VIEW_FIELD
--(13)经济分类科目表--SCM
select*
fromZF1KM_MJ01
--(14)人员做账记录
select*
fromZF1USER_MENU
--(15)银行账户信息
select*
fromZF1ZHH
--(16)其他信息
select*
fromBB_PARM
--(17)其他信息
select*
fromZF1BK
--(18)归口股室/业务部门--SCM
select*
fromZF1ZG01
--(19)其他信息
select*
fromBB1VIEW01
go
--3.根据上述找到的五张表,结合视图分析连接条件:
--凭证表ZF1PD
--科目表ZF1ZZ01
--功能分类科目表ZF1KM01
--单位编码表ZFLX_SCM
--经济分类科目表ZF1KM_MJ01
--()查看视图:
select*from BB1VIEW_FIELDwhereVIEW_NAME='V_BM3_PD_ALL';--(重要)
--()根据视图,对凭证表字段名及连接条件进行分析:
--字段名--连接表--连接字段
SELECT FLM--主键--分录码
,ZZ_SCM--关键字--会计科目ZF1ZZ01SCM
,KM_SCM--关键字--预算科目 ZF1KM01SCM
,DW_SCM--关键字--单位编码ZF1DW01SCM
,LY_SCM--关键字--资金来源ZF1LY01SCM
,KM_MJ_SCM--关键字--经济科目ZF1KM_MJ01SCM
,XM_SCM--关键字--项目ZF1XM01SCM
,ZG_SCM--关键字--业务部门ZF1ZG01SCM
,ZJXZ_SCM--关键字--资金来源ZF1LY01SCM
,ZFLX_SCM--关键字--支付类型ZF1ZFLX01SCM
,JFLX_SCM--关键字--经费类型ZF1JFLX01SCM
,MONTH--月
,DAY--日
,PDH--凭单号
,FLH--分录号
,JDF--借贷方
,FDJ--附单据数
,ZY--摘要
,ZY_MX--明细摘要
,VAL--凭单金额(考虑了借贷方和总帐属性的凭单金额)
,KEEPFLAG--登帐标志
,ZDR--制单人
,ZDR_TIME--制单日期
,JZR--记账人
,JZR_TIME--记账日期
,FHR--
,FHR_TIME--
,ZGR--
,ZGR_TIME--
,JC_RECNO--
,SX1_SCM--属性
,SX2_SCM--属性
,SX3_SCM--属性
,WB1--文本
,WB2--文本
,WB3--文本
,ZHUANZHANG--
,ZB_ID--
,MODIFY_TIME--
fromZF1PD
--第二步,测试各表连接凭证表:
SELECT FLM--主键--分录码
,ZZ_SCM--关键字--会计科目ZF1ZZ01SCM
,KM_SCM--关键字--预算科目 ZF1KM01SCM
,DW_SCM--关键字--单位编码ZF1DW01SCM
,KM_MJ_SCM--关键字--经济科目ZF1KM_MJ01SCM
,ZG_SCM--关键字--业务部门ZF1ZG01SCM
,MONTH--月
,DAY--日
,PDH--凭单号
,FLH--分录号
,JDF--借贷方
,ZY--摘要
,ZY_MX--明细摘要
,VAL--凭单金额(考虑了借贷方和总帐属性的凭单金额)
,ZDR_TIME--制单日期
,km.SCMkm_SCM
,km.NAMEkm_NAME
,ys.SCMys_SCM
,ys.NAMEys_NAME
,dw.SCMdw_SCM
,dw.NAMEdw_NAME
,jj.SCMjj_SCM
,jj.NAMEjj_NAME
,casewhenkm.ATT='收入'thenkm.SCMendsr_SCM
,casewhenkm.ATT='收入'thenkm.NAMEendsr_NAME
fromZF1PDpzleftjoinZF1ZZ01km--会计科目
onpz.ZZ_SCM=km.scm
leftjoinZF1KM01ys--功能科目(预算科目)
onpz.KM_SCM=ys.scm
leftjoinZF1DW01dw--单位编码
onpz.DW_SCM=dw.scm
leftjoinZF1KM_MJ01jj--经济科目
onpz.KM_MJ_SCM=jj.scm
--where km.ATT='收入'
--收入科目字段需要从会计科目中提取出来;
selectATT
fromZF1ZZ01
groupbyATT
--执行结果:
--ATT
--负债
--净资产
--收入
--支出
--资产
select*
fromZF1ZZ01
whereATT='收入'
--第三步,生成总预算会计标准表(仅含末级科目名称):
select
'我叫地区编号'XZQHDM,--行政区划代码
'私奔到火星'XZQHMC,--行政区划名称
'[ZFKJ_ZFKJ_YEAR]'KJZTCODE,--会计账套代码
'私奔到火星私奔到火星总预算会计年度'KJZTNAME,--会计账套名称
''KJND,--会计年度
(
case
whenlen(MONTH)=1 then'0'+cast(MONTHasvarchar(2))
elsecast(MONTHasvarchar(2))
end
)KJQJ,--会计期间
'记账凭证'PZLX,--凭证类型
PDHPZCODE,--凭证编号
cast(replace(ZDR_TIME,'-','')asCHAR(8))
PZDATE,--凭证日期
FLHPZFLH, --凭证分录号
km.KMHKMCODE,--科目编码
km.NAMEKMNAME,--科目名称
(
case
whenkm.ATT='支出'thenys.KMH--(会计科目为支出类)
elsenull
end
)GNFLCODE,--功能科目(仅用于支出类)
(
case
whenkm.ATT='支出'thenys.NAME
elsenull
end
)GNFLNAME,--功能科目名称
---------------------------------------------------------------------------------
--新增字段:
(
case
whenkm.ATT='支出'thenjj.KMH--(会计科目为支出类)
elsenull
end
)JJFLCODE,--经济科目(仅用于支出类)
(
case
whenkm.ATT='支出'thenjj.NAME
elsenull
end
)JJFLNAME,--经济科目名称
---------------------------------------------------------------------------------
--新增字段:
(
case
whenkm.ATT='收入'thenkm.KMH--(会计科目为支出类)
elsenull
end
)SRKMCODE,--收入科目(仅用于支出类)
(
case
whenkm.ATT='收入'thenkm.NAME
elsenull
end
)SRKMNAME,--收入科目名称
---------------------------------------------------------------------------------
(
case
whenZY<>ZY_MXthenZY+'('+ZY_MX+')'
elseZY
end
)ZHAIYAO,--摘要
(
case
whenJDF=1 thenVAL
else0
end
)JFJE,--借方金额
(
case
whenJDF=-1 thenVAL
else0
end
)DFJE,--借方金额
WB1+WB2+WB3BZ--备注
--INTO DZ_ZYSKJ_BZB_--生成:火星_总预算会计_标准表_
fromZF1PDpzleftjoinZF1ZZ01km--会计科目
onpz.ZZ_SCM=km.scm
leftjoinZF1KM01ys--功能科目(预算科目)
onpz.KM_SCM=ys.scm
leftjoinZF1DW01dw--单位编码(因未含全部科目名称,此条件可删除)
onpz.DW_SCM=dw.scm
leftjoinZF1KM_MJ01jj--经济科目
onpz.KM_MJ_SCM=jj.scm
WHEREkm.ATT='收入'
--第四步,生成总预算会计标准表(科目名称包含上级科目未含单位):
--1.生成含上级科目名的会计科目视图ZF1ZZ01_S
altertableZF1ZZ01
altercolumnNAMEnvarchar(13);
go
createviewZF1ZZ01_S
as
selecta.SCM,a.KMH,a.SCM_1,a.SCM_2,a.SCM_3,a.SCM_4,a.SCM_5,a.ATT,a.JC,a.JD_FLAG,
case
whena.JC=1 thenb.NAME
whena.JC=2 thenreplace((b.NAME+'\'+c.NAME),' ','')
whena.JC=3 thenreplace((b.NAME+'\'+c.NAME+'\'+d.NAME),' ','')
whena.JC=4 thenreplace((b.NAME+'\'+c.NAME+'\'+d.NAME+'\'+e.NAME),' ','')
whena.JC=5 thenreplace((b.NAME+'\'+c.NAME+'\'+d.NAME+'\'+e.NAME+'\'+f.NAME),' ','')
endNAME
fromZF1ZZ01a
leftjoinZF1ZZ01bonb.SCM=a.SCM_1
leftjoinZF1ZZ01conc.SCM=a.SCM_2
leftjoinZF1ZZ01dond.SCM=a.SCM_3
leftjoinZF1ZZ01eone.SCM=a.SCM_4
leftjoinZF1ZZ01fonf.SCM=a.SCM_5
--order by a.KMH
GO
--2.生成含上级科目名的预算科目(功能科目)视图ZF1KM01_S
altertable[ZF1KM01]
altercolumnNAMEnvarchar(30);
go
createviewZF1KM01_S
as
selecta.SCM,a.KMH,a.SCM_1,a.SCM_2,a.SCM_3,a.SCM_4,a.SCM_5,a.JC,a.JC_FLAG,
case
whena.JC=1 thenb.NAME
whena.JC=2 thenreplace((b.NAME+'\'+c.NAME),' ','')
whena.JC=3 thenreplace((b.NAME+'\'+c.NAME+'\'+d.NAME),' ','')
whena.JC=4 thenreplace((b.NAME+'\'+c.NAME+'\'+d.NAME+'\'+e.NAME),' ','')
whena.JC=5 thenreplace((b.NAME+'\'+c.NAME+'\'+d.NAME+'\'+e.NAME+'\'+f.NAME),' ','')
endNAME
fromZF1KM01a
leftjoinZF1KM01bonb.SCM=a.SCM_1
leftjoinZF1KM01conc.SCM=a.SCM_2
leftjoinZF1KM01dond.SCM=a.SCM_3
leftjoinZF1KM01eone.SCM=a.SCM_4
leftjoinZF1KM01fonf.SCM=a.SCM_5
--order by a.KMH
go
--3.生成含上级科目名的经济科目视图ZF1KM_MJ01_S
altertableZF1KM_MJ01
altercolumnNAMEnvarchar(30);
go
createviewZF1KM_MJ01_S
as
selecta.SCM,a.KMH,a.SCM_1,a.SCM_2,a.SCM_3,a.SCM_4,a.SCM_5,a.JC,a.JC_FLAG,
case
whena.JC=1 thenb.NAME
whena.JC=2 thenreplace((b.NAME+'\'+c.NAME),' ','')
whena.JC=3 thenreplace((b.NAME+'\'+c.NAME+'\'+d.NAME),' ','')
whena.JC=4 thenreplace((b.NAME+'\'+c.NAME+'\'+d.NAME+'\'+e.NAME),' ','')
whena.JC=5 thenreplace((b.NAME+'\'+c.NAME+'\'+d.NAME+'\'+e.NAME+'\'+f.NAME),' ','')
endNAME
fromZF1KM_MJ01a
leftjoinZF1KM_MJ01bonb.SCM=a.SCM_1
leftjoinZF1KM_MJ01conc.SCM=a.SCM_2
leftjoinZF1KM_MJ01dond.SCM=a.SCM_3
leftjoinZF1KM_MJ01eone.SCM=a.SCM_4
leftjoinZF1KM_MJ01fonf.SCM=a.SCM_5
--order by a.KMH
--4.生成总预算会计标准表DZ_ZYSKJ_
select
'我叫地区编号'XZQHDM,--行政区划代码
'私奔到火星'XZQHMC,--行政区划名称
'[ZFKJ_ZFKJ_YEAR]'KJZTCODE,--会计账套代码?
'私奔到火星私奔到火星总预算会计年度'KJZTNAME,--会计账套名称?
''KJND,--会计年度
(
case
whenlen(MONTH)=1 then'0'+cast(MONTHasvarchar(2))
elsecast(MONTHasvarchar(2))
end
)KJQJ,--会计期间
'记账凭证'PZLX,--凭证类型
PDHPZCODE,--凭证编号
cast(replace(ZDR_TIME,'-','')asCHAR(8))
PZDATE,--凭证日期
FLHPZFLH, --凭证分录号
km.KMHKMCODE,--科目编码
km.NAMEKMNAME,--科目名称
(
case
whenkm.ATT='支出'thenys.KMH--(会计科目为支出类)
elsenull
end
)GNFLCODE,--功能科目(仅用于支出类)
(
case
whenkm.ATT='支出'thenys.NAME
elsenull
end
)GNFLNAME,--功能科目名称
---------------------------------------------------------------------------------
--新增字段:
(
case
whenkm.ATT='支出'thenjj.KMH--(会计科目为支出类)
elsenull
end
)JJFLCODE,--经济科目(仅用于支出类)
(
case
whenkm.ATT='支出'thenjj.NAME
elsenull
end
)JJFLNAME,--经济科目名称
---------------------------------------------------------------------------------
--新增字段:
(
case
whenkm.ATT='收入'thenkm.KMH--(会计科目为支出类)
elsenull
end
)SRKMCODE,--收入科目(仅用于支出类)
(
case
whenkm.ATT='收入'thenkm.NAME
elsenull
end
)SRKMNAME,--收入科目名称
---------------------------------------------------------------------------------
(
case
whenZY<>ZY_MXthenZY+'('+ZY_MX+')'
elseZY
end
)ZHAIYAO,--摘要
(
case
whenJDF=1 thenVAL
else0
end
)JFJE,--借方金额
(
case
whenJDF=-1 thenVAL
else0
end
)DFJE,--借方金额
WB1+WB2+WB3BZ--备注
--INTO DZ_ZYSKJ_BZB_--生成:火星_总预算会计_标准表_
fromZF1PDpzleftjoinZF1ZZ01_Skm--会计科目
onpz.ZZ_SCM=km.scm
leftjoinZF1KM01_Sys--功能科目(预算科目)
onpz.KM_SCM=ys.scm
--left join ZF1DW01 dw--单位编码(因会计科目未包含具体单位,此条件可删除)
--on pz.DW_SCM = dw.scm
leftjoinZF1KM_MJ01_Sjj--经济科目
onpz.KM_MJ_SCM=jj.scm
----------------------------------------------------------------------------------------
--第五步:新建数据库,将生成的总预算会计标准表导入,并备份: