解决方案: |
1、取消记帐至2003年初状态; 2、在2003年度库中执行如下语句清空GL_ACCASS表的记录: delete from gl-accass where ccode like '118%' 3、将附件DB1中的数据表GL_ACCASSNEW记录(具体生成过程见附件)通过SQL导入工具,替换GL_ACCASS表中的原有记录; 4、在软件中新增一个9999的职员,部门为000001(用于数据调整),以被日后查询; 5、在SQL企业管理器2003年度库gl_accvouch中补录一条金额为“158364.66”的记录(打开数据表gl_accvouch参照118科目年初其他记录直接补录即可)。部门为000001、人员为9999; 6、执行2003年初对帐,平衡后重新记帐、结帐至12月份即可。 具体出错科目数据的分析及处理过程详见附件。 附件:其中一科目的问题分析及解决办法(118科目): --检查118科目年初数据表之间对应关系,发现凭证明细表、辅助总帐表、科目总帐表三个表数据不一致: Select ccode,sum(md)-sum(mc) from gl_accvouch where ccode like '118%' and iperiod=0 group by ccode order by ccode Select ccode,cbegind_c,mb,* from gl_accsum where ccode like '118%' and iperiod=1 order by ccode Select ccode,sum((case WHEN cbegind_c='借' then MB WHEN cbegind_c='贷' THEN -MB ELSE 0 END)) from gl_accass where ccode like '118%' and iperiod=1 group by ccode order by ccode --经查上述三个表中数据都不一致,但年初科目总帐借贷方试算又是平衡的,所以可依GL_ACCSUM数据为准将gl_accvuch与gl_accass数据表的差额,补到gl_accvouch表中,之后根据gl_accvouchs生成gl_accass表中118科目的数据。 1、在软件中新增一个9999的职员,部门为000001(用于数据调整),以被日后查询; 2、删除gl_accass表中118科目的记录; delete from gl_accass where ccode like '118%' 3、在gl_accvouch中补录一条金额为“158364.66”的记录(打开数据表gl_accvouch参照118科目年初其他记录直接补录即可)。部门为000001、人员为9999; select * from gl_accass where ccode like '118%' and iperiod=1 --根据凭证名细表重算辅助总帐表118科目的记录插入到TEMPDB..GL_ACCASS118临时表中: select ccode,cexch_name,cdept_id,cperson_id,ccus_id,csup_id,citem_class, citem_id,(2-1) as iperiod, --cbegind_c,cbegind_c_engl, (case when sum(md)-sum(mc)>0 then '借' when sum(md)-sum(mc)0 then 'Dr' when sum(md)-sum(mc)0 then '借' when sum(md)-sum(mc)0 then 'Dr' when sum(md)-sum(mc) |