解决方案: |
修改2004年度账的期初数据.可以通过如下语句,查看每个科目2003年期末与2004年期初的差异情况(科目编码处需要做相应替换): select * from (select sum(mb)as mb,citem_id,ccode
from gl_accass
where ccode = '41010104' and iperiod = 1 group by citem_id,ccode ) a
full join (select sum(me)as me,citem_id,ccode
from ufdata_004_2003..gl_accass
where ccode = '41010104' and iperiod = 12 group by citem_id,ccode ) b on a.citem_id = b.citem_id
where isnull(mb,0) <> isnull(me,0)
按照以上语句,找到这3个科目的差异数据,在软件中期初余额的项目明细中,增加相应的项目及其对应的数值.此时,系统会更新Gl_accass并同时自动更新Gl_accsum表中相应的数据,而Gl_accsum中的数据本来是正确的,因此,需要将其更改回来.可以使用如下语句进行.在使用中需要注意的是,在Gl_accass中更新的数据是一个科目的,而Gl_accsum中更新的包括此科目及其所有上级科目.因此,在修改Gl_accsum中的数据时,要把上级科目也修改.即,用原来的值减去在Gl_accass中增加的值.具体如下:
--更新gl_accsum 期初
update gl_accsum set mb=mb-94.24
--原值减去增加的值(94.24).
--select * from gl_accsum where (ccode = '41010104' or ccode = '410101' or ccode = '4101')
--相应科目及其所有上级科目 and iperiod=1
--更新gl_accsum 期末
update gl_accsum set me=mb+mc-md where (ccode = '41010104' or ccode = '410101' or ccode = '4101')
--相应科目及其所有上级科目 and iperiod=1
注:其他不平科目可参照此方法逐一进行修复. |