解决方案: |
1.客户数据中两张暂估表对不上的原因,主要是一部分入库单的数据在rdrecords表的累计结算数量和金额没有被回写,并且造成其中一部分入库单重复结算,所以查询这两张表的数据对不上。并且有一张入库单在rdrecords有数量和金额没有单价,在ia_subsidiary表中没有金额。修改后这两张表数据仍然会有一些差额,因为采购的暂估入库余额表中的本期入库数量包含了不是暂估入库的数量,而存货暂估入库表不包含非暂估入库的单据,所以只有当用户全部的入库单都是暂估入库单的时候,这两张表才有可能相等。
2.库存和存货收发存表期初不等,是由于库存和存货2005年的期初余额对帐就不平,差额相等。另外,存货明细账中有一些蓝字回冲单重复,导致结存数量不等。取消期末处理,恢复蓝字回冲单的记账,重新作结算成本处理和期末处理就可以解决。
3.存货不能取消期末处理是因为ia_summary表中有三个存货存在重复记录,合并后就可以了。 需要执行以下语句:
SELECT PurSettleVouchs.iRdsID,SUM(PurSettleVouchs.iSVQuantity) AS iSVQuantity,
SUM(PurSettleVouchs.iSVAPrice) AS iSVAPrice
into lichen
FROM PurSettleVouch
INNER JOIN PurSettleVouchs ON PurSettleVouch.PSVID=PurSettleVouchs.PSVID
WHERE PurSettleVouch.dSVDate>='2005-01-01'
AND cBusType='普通采购'
GROUP BY PurSettleVouchs.iRdsID
update rdrecords
set isquantity=isvquantity,imoney=isvaprice
from rdrecords
join lichen on AutoID=iRdsID
where iSQuantity<>iSVQuantity or iMoney<>iSVAPrice
update rdrecords
set iunitcost=round(iprice/iquantity,6)
where autoid=6114
update ia_subsidiary
set iainprice=iainquantity*iincost
where autoid=4685
delete from ia_summary
where autoid=3155 or autoid=9549
update ia_summary
set inum=1312,imoney=773.71
where autoid=3156 or autoid=9550
update ia_summary
set iunitprice=round(imoney/inum,6)
where autoid=3156 or autoid=9550
delete from ia_summary
where autoid=3130 or autoid=9524
update ia_summary
set inum=2652,imoney=1097.45
where autoid=3131 or autoid=9525
update ia_summary
set iunitprice=round(imoney/inum,6)
where autoid=3131 or autoid=9525
delete from ia_summary
where autoid=3242 or autoid=9636
DROP TABLE lichen |