表1:《科目余额表-个表穿透》
更新日期:2022-05-29
beginselect tt.*,t1.igrade,t1.ccode as ccode2into #temp_kemuyuechuantou111from(select dbtype,dbName ,companyName,accidname,iyear,iperiod,isbook,ruleversion,rownum,indexname,ccode,jdfx,jsfs,hesuanfrom [dbo].[VW_CO_JC_BalanceSheet_zb]where 1=1and accidname in ($(合并报表-账套名称))and iyear=$(合并报表-年度)and iperiod=$(合并报表-期间)and isbook='$(合并报表-是否包含未记账)'$(合并报表_报表行号)$(合并报表_指标名称)union allselect dbtype,dbName ,companyName,accidname,iyear,iperiod,isbook,ruleversion,rownum,indexname,ccode,jdfx,jsfs,NULL as hesuanfrom [dbo].[VW_CO_JC_Profit_zb]where 1=1and accidname in ($(合并报表-账套名称))and iyear=$(合并报表-年度)and iperiod=$(合并报表-期间)and isbook='$(合并报表-是否包含未记账)'$(合并报表_报表行号)$(合并报表_指标名称))as ttleft join(select distinct dbtype,dbName ,companyName,accidname,ccode,igrade,iyearfrom CO_JC_Ccodewhere 1=1and accidname in ($(合并报表-账套名称))and iyear=$(合并报表-年度)) as t1 on tt.dbtype=t1.dbtype and tt.accidname=t1.accidname and tt.iyear=t1.iyear and left(t1.ccode,len(tt.ccode))=tt.ccodewhere 1=1--and (case when len(isnull(tt.jdfx,N''))<1 and len(isnull(tt.hesuan,N''))<1 then tt.ccode else t1.ccode end) =t1.ccodeselectcast(tt.iyear as varchar(10))+'年'+cast(tt.iperiod as varchar(4))+'月' as iyperiod,tt.dbtype,tt.dbName ,tt.companyName,tt.accidname,tt.iyear,tt.iperiod,accountTypeID,accountTypeName,accountCode,currencyCode,currencyName,igrade,isdetail,case when igrade=6 then N' '+accountCode2 when igrade=5 then N' '+accountCode2 when igrade=4 then N' '+accountCode2 when igrade=3 then N' '+accountCode2 when igrade=2 then N' '+accountCode2else accountCode2 end as accountCode2,accountName,ccodefx,case when isdetail=0 then(case when igrade=6 then N' '+accountName when igrade=5 then N' '+accountName when igrade=4 then N' '+accountName when igrade=3 then N' '+accountName when igrade=2 then N' '+accountNameelse accountName end) else (case when igrade=6 then N' '+accountName2 when igrade=5 then N' '+accountName2 when igrade=4 then N' '+accountName2 when igrade=3 then N' '+accountName2 when igrade=2 then N' '+accountName2else accountName2 end) end as accountName2,localqc,localjfqc,localdfqc,localjffs,localdffs,localytdjffs,localytddffs,localqm,localjfqm,localdfqmfrom #temp_kemuyuechuantou111 as ttinner join(SELECTdbtype,dbName ,companyName,accidname,iyear,iperiod,isbook,accountTypeID,accountTypeCode,accountTypeName,calDirection,--currencyID,accountID,currencyCode,currencyName,accountCode,accountName,(Case When len(isnull(isauxaccdepartmentcode,N''))<1 then N'' Else N' [' + isnull(isauxaccdepartmentcode,N'') + N'] ' End) + ISNULL(isauxaccdepartment, N'')+ (Case When len(isnull(isauxaccpersoncode,N''))<1 then N'' Else N' [' + isnull(isauxaccpersoncode,N'') + N'] ' End) + ISNULL(isauxaccperson, N'')+ (Case When len(isnull(isauxacccustomercode,N''))<1 then N'' Else N' [' + isnull(isauxacccustomercode,N'') + N'] ' End) + ISNULL(isauxacccustomer, N'')+ (Case When len(isnull(isauxaccinventorycode,N''))<1 then N'' Else N' [' + isnull(isauxaccinventorycode,N'') + N'] ' End) + ISNULL(isauxaccinventory, N'')+ (Case When len(isnull(isauxaccprojectcode,N''))<1 then N'' Else N' [' + isnull(isauxaccprojectcode,N'') + N'] ' End) + ISNULL(isauxaccproject, N'')+ (Case When len(isnull(isexauxacc1code,N''))<1 then N'' Else N' [' + isnull(isexauxacc1code,N'') + N'] ' End) + ISNULL(isexauxacc1, N'')+ (Case When len(isnull(isexauxacc2code,N''))<1 then N'' Else N' [' + isnull(isexauxacc2code,N'') + N'] ' End) + ISNULL(isexauxacc2, N'')+ (Case When len(isnull(isexauxacc3code,N''))<1 then N'' Else N' [' + isnull(isexauxacc3code,N'') + N'] ' End) + ISNULL(isexauxacc3, N'')+ (Case When len(isnull(isexauxacc4code,N''))<1 then N'' Else N' [' + isnull(isexauxacc4code,N'') + N'] ' End) + ISNULL(isexauxacc4, N'')+ (Case When len(isnull(isexauxacc5code,N''))<1 then N'' Else N' [' + isnull(isexauxacc5code,N'') + N'] ' End) + ISNULL(isexauxacc5, N'')+ (Case When len(isnull(isexauxacc6code,N''))<1 then N'' Else N' [' + isnull(isexauxacc6code,N'') + N'] ' End) + ISNULL(isexauxacc6, N'')+ (Case When len(isnull(isexauxacc7code,N''))<1 then N'' Else N' [' + isnull(isexauxacc7code,N'') + N'] ' End) + ISNULL(isexauxacc7, N'')+ (Case When len(isnull(isexauxacc8code,N''))<1 then N'' Else N' [' + isnull(isexauxacc8code,N'') + N'] ' End) + ISNULL(isexauxacc8, N'')+ (Case When len(isnull(isexauxacc9code,N''))<1 then N'' Else N' [' + isnull(isexauxacc9code,N'') + N'] ' End) + ISNULL(isexauxacc9, N'')+ (Case When len(isnull(isexauxacc10code,N''))<1 then N'' Else N' [' + isnull(isexauxacc10code,N'') + N'] ' End) + ISNULL(isexauxacc10, N'') as accountName2,case when accountDcdirection='652' then '借' else '贷' end as ccodefx,--accountID2,accountUnit,case when isdetail=0 then accountCode else N'' end as accountCode2,isEndNode,isdetail,isauxacccustomer,isauxaccdepartment,isauxaccperson,isauxaccproject,isauxaccinventory,isexauxacc1,isexauxacc2,isexauxacc3,isexauxacc4,isexauxacc5,isexauxacc6,isexauxacc7,isexauxacc8,isexauxacc9,isexauxacc10,--quantityBalance,origAmountBalance,amountBalance as localqc,--case when amountBalance>0 then '借' when amountBalance<0 then '贷' else '平' end as localqcfx,case when amountBalance>0 then amountBalance else 0 end as localjfqc,case when amountBalance<0 then abs(amountBalance) else 0 end as localdfqc,--quantityDr,quantityCr,origAmountDr,origAmountCr,amountDr as localjffs,amountCr as localdffs,--cumQuantityDr,cumQuantityCr,--cumOrigAmountDr,cumOrigAmountCr,cumAmountDr as localytdjffs,cumAmountCr as localytddffs,--endquantityBalance,endorigAmountBalance,endamountBalance as localqm,case when endamountBalance>0 then endamountBalance else 0 end as localjfqm,case when endamountBalance<0 then abs(endamountBalance) else 0 end as localdfqmFROM CO_JC_ERP_Balancewhere 1=1and accidname in ($(合并报表-账套名称))and iyear=$(合并报表-年度)and iperiod=$(合并报表-期间)and isbook='$(合并报表-是否包含未记账)') as t1 on tt.dbtype=t1.dbtype and tt.accidname=t1.accidname and tt.iyear=t1.iyear--and left(tt.accountcode,len(t1.ccode2))=t1.ccode2and tt.ccode2=t1.accountcodeorder by accounttypecode,accountcode,igrade, isdetail,accountName2drop table #temp_kemuyuechuantou111end
