问题原因: |
先看一下此科目的明细帐发生情况,查询205科目明细帐。借方来源于发票-25075303.63=(发票合计6228671.12)+(调整期初-3130397.79 ),贷方来源于入库单21919569.39=(1月入库单合计21919781.46)+(调整单212.07)。 我们再来分析一下存货中暂估材料余额表。本表的数据来源比较复杂,本期暂估列金额来源于存货明细帐,已经记帐的入库单,条件为单据类型为“01”即(采购入库单);并且暂估标志为1,即本月暂估入库记帐;并且业务类型为'普通采购'。按上面的条件查询, 总金额为20702387.44,和总帐相差21919569.39-20702387.44=1217181.95。这部分差额为上述条件中暂估标志为0或2的记录,0即本期先结算本期报销记帐,2即上期暂估记帐本期结算报销或本期先记帐本期结算。 再看一下暂估材料余额表报销列数据来源。本列来源于结算单子表结算金额(ISAVPRICE)合计,条件为结算期间等于本期,且为对应存货明细帐中采购入库单会计期间为本期,业务类型为“暂估报销”的单据。按上面的条件查询,总金额为5006725.02,和总帐相差6228671.12-5006725.02=1221946.1。差额部分为 本期先结算,本期记帐(BFLAG=0);上期暂估记帐,本期结算报销或本期先记帐,本期结算(BFLAG=2)单据。 可以看出暂估材料余额表中暂估列,报销列同时差一部分数据(本期先结算,本期记帐(BFLAG=0);上期暂估记帐,本期结算报销或本期先记帐,本期结算(BFLAG=2)单据),正常情况下这两部分差额应该一致,但现在有差额,我们用两个差额相减1221946.1-1217181.95=4764.15,用这个差额加上期初差异4764.15+0.54=4763.61 正好等于总帐和存货间的差额59516729.35-59511965.74=4763.61。 那差额差在哪里呢?上面可以分析出这两个差额来源于已经结算的结算单和明细帐之间。 先将PURSTTLEVOUCHS中的ID字段复制到另外一个表 ,语句如下 SELECT PurSettleVouchs.ID into pbvsid FROM (Inventory INNER JOIN IA_Subsidiary ON Inventory.cInvCode = IA_Subsidiary.cInvCode left join ComputationUnit ON inventory.cComunitCode = ComputationUnit.ccomunitcode ) INNER JOIN PurSettleVouchs ON IA_Subsidiary.psvsid = PurSettleVouchs.ID WHERE IA_Subsidiary.cWhCode IN ('01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16') AND Inventory.bInvEntrust=0 AND IA_Subsidiary.cBusType='暂估报销' AND IA_Subsidiary.iMonth=1 我们再将明细帐数据输出到临时表 SELECT ia_subsidiary.id into aaaaa FROM ia_subsidiary WHERE IA_Subsidiary.cWhCode IN ('01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16') AND IA_Subsidiary.cVouType='01' AND IA_Subsidiary.bFlag<>1 and IA_Subsidiary.cBusType='普通采购' AND IA_Subsidiary.iMonth=1 查询结算单中不对应记录 select * from pursettlevouchs a join (purbillvouchs b join purbillvouch c on b.pbvid=c.pbvid ) on a.ibsid=b.id where dpbvdate<='2005-01-31' and dpbvdate>='2005-01-01' and a.id not in (select id from pbvsid) and irdsid not in (select id from aaaa) 结果显示两条记录,根据IRDSID查看这两条记录,单据号为000100947 select * from rdrecord a join rdrecords b on a.id=b.id where autoid in(130434,130435) 这两条记录的和就是4763.61,仔细查看,发现问题原来这张单据为期初入库单,1月做的采购结算,2月做的结算成本处理。由于1月份结算后未做结算成本处理,所以没有形成调整单。但是在查询暂估余额表是却包含这部分单据。所以出现上述错误。 |
解决方案: |
先看一下此科目的明细帐发生情况,查询205科目明细帐。借方来源于发票-25075303.63=(发票合计6228671.12)+(调整期初-3130397.79 ),贷方来源于入库单21919569.39=(1月入库单合计21919781.46)+(调整单212.07)。 我们再来分析一下存货中暂估材料余额表。本表的数据来源比较复杂,本期暂估列金额来源于存货明细帐,已经记帐的入库单,条件为单据类型为“01”即(采购入库单);并且暂估标志为1,即本月暂估入库记帐;并且业务类型为'普通采购'。按上面的条件查询, 总金额为20702387.44,和总帐相差21919569.39-20702387.44=1217181.95。这部分差额为上述条件中暂估标志为0或2的记录,0即本期先结算本期报销记帐,2即上期暂估记帐本期结算报销或本期先记帐本期结算。 再看一下暂估材料余额表报销列数据来源。本列来源于结算单子表结算金额(ISAVPRICE)合计,条件为结算期间等于本期,且为对应存货明细帐中采购入库单会计期间为本期,业务类型为“暂估报销”的单据。按上面的条件查询,总金额为5006725.02,和总帐相差6228671.12-5006725.02=1221946.1。差额部分为 本期先结算,本期记帐(BFLAG=0);上期暂估记帐,本期结算报销或本期先记帐,本期结算(BFLAG=2)单据。 可以看出暂估材料余额表中暂估列,报销列同时差一部分数据(本期先结算,本期记帐(BFLAG=0);上期暂估记帐,本期结算报销或本期先记帐,本期结算(BFLAG=2)单据),正常情况下这两部分差额应该一致,但现在有差额,我们用两个差额相减1221946.1-1217181.95=4764.15,用这个差额加上期初差异4764.15+0.54=4763.61 正好等于总帐和存货间的差额59516729.35-59511965.74=4763.61。 那差额差在哪里呢?上面可以分析出这两个差额来源于已经结算的结算单和明细帐之间。 先将PURSTTLEVOUCHS中的ID字段复制到另外一个表 ,语句如下
SELECT PurSettleVouchs.ID
Into pbvsid
FROM (Inventory INNER JOIN IA_Subsidiary ON Inventory.cInvCode = IA_Subsidiary.cInvCode
left join ComputationUnit ON inventory.cComunitCode = ComputationUnit.ccomunitcode )
INNER JOIN PurSettleVouchs ON IA_Subsidiary.psvsid = PurSettleVouchs.ID
WHERE IA_Subsidiary.cWhCode IN ('01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16')
AND Inventory.bInvEntrust=0
AND IA_Subsidiary.cBusType='暂估报销'
AND IA_Subsidiary.iMonth=1
我们再将明细帐数据输出到临时表
SELECT ia_subsidiary.id
into aaaaa
FROM ia_subsidiary
WHERE IA_Subsidiary.cWhCode IN ('01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16')
AND IA_Subsidiary.cVouType='01'
AND IA_Subsidiary.bFlag<>1
and IA_Subsidiary.cBusType='普通采购'
AND IA_Subsidiary.iMonth=1
查询结算单中不对应记录
select *
from pursettlevouchs a
join (purbillvouchs b join purbillvouch c on b.pbvid=c.pbvid ) on a.ibsid=b.id
where dpbvdate<='2005-01-31'
and dpbvdate>='2005-01-01'
and a.id not in (select id from pbvsid)
and irdsid not in (select id from aaaa)
结果显示两条记录,根据IRDSID查看这两条记录,单据号为000100947 select * from rdrecord a join rdrecords b on a.id=b.id where autoid in(130434,130435) 这两条记录的和就是4763.61,仔细查看,发现问题原来这张单据为期初入库单,1月做的采购结算,2月做的结算成本处理。由于1月份结算后未做结算成本处理,所以没有形成调整单。但是在查询暂估余额表是却包含这部分单据。所以出现上述错误。 |