解决方案: |
进行结算成本处理时可借助SQL事件探察器进行跟踪,系统会执行如下过滤脚本: SELECT IA_EstiSettle.PSVID, IA_EstiSettle.ID, IA_EstiSettle.iRdID,IA_EstiSettle.iRdsid, ' ' AS 表达式1,IA_EstiSettle.cSVCode, IA_EstiSettle.cWhCode, IA_EstiSettle.cWhName,IA_EstiSettle.cPIVCode, IA_EstiSettle.DDATE, IA_EstiSettle.cInvCode,IA_EstiSettle.cInvName, IA_EstiSettle.cInvM_Unit, LTRIM(STR(IA_EstiSettle.iSVQuantity,20,2)),LTRIM(STR((Case When IsNull(IA_EstiSettle.iRdsid,0)<>0 then(case when isnull(ia_subsidiary.iainquantity,0)=0 then 0 else (isnull(ia_subsidiary.iainprice,0)+isnull(ia_subsidiary.idebitdifcost,0)-isnull(ia_subsidiary.iCreditDifCost,0))/ia_subsidiary.iainquantity end)else ia_estisettle.isvacost end),20,2)), LTRIM(STR((Case When Isnull(IA_EstiSettle.iRdsid,0)<>0 then IsNull(IA_EstiSettle.iSVQuantity,0)*(case when isnull(ia_subsidiary.iainquantity,0)=0 then 0 else (isnull(ia_subsidiary.iainprice,0)+isnull(ia_subsidiary.idebitdifcost,0)-isnull(ia_subsidiary.iCreditDifCost,0))/ia_subsidiary.iainquantity end) Else ISNULL(IA_EstiSettle.iSVAPrice,0) End),20,2)), LTRIM(STR((case when isnull(IA_EstiSettle.iSVCost,0)=0 then 0 else (isnull(IA_EstiSettle.iSVQuantity,0)) end),20,2)),LTRIM(STR((case when isnull(IA_EstiSettle.iSVQuantity,0)=0 then 0 else (isnull(IA_EstiSettle.iSVPrice,0)/isnull(IA_EstiSettle.iSVQuantity,0)) end),20,2)),LTRIM(STR(IA_EstiSettle.iSVPrice,20,2)),IA_EstiSettle.ibsid,IA_EstiSettle.cRdCode, IA_EstiSettle.cRdName,IA_EstiSettle.cFree1,IA_EstiSettle.cFree2,IA_EstiSettle.cFree3, IA_EstiSettle.cFree4,IA_EstiSettle.cFree5, IA_EstiSettle.cFree6,IA_EstiSettle.cFree7, IA_EstiSettle.cFree8,IA_EstiSettle.cFree9, IA_EstiSettle.cFree10 FROM (((((IA_EstiSettle INNER JOIN Inventory ON IA_EstiSettle.cInvCode = Inventory.cInvCode) left Join PurBillVouchs On IA_EstiSettle.iBSid=PurBillVouchs.Id) Left JOIN RdRecords ON IA_EstiSettle.iRdsID = RdRecords.AutoID) left join ia_subsidiary on rdrecords.autoid=ia_subsidiary.id) left join rdrecord on rdrecords.id=rdrecord.id) WHERE (((Purbillvouchs.bExBill=1 and isnull(IA_EstiSettle.iRdsid,0)=0) or (Purbillvouchs.bExBill=1 and isnull(IA_EstiSettle.iRdsid,0)<>0 and (ia_subsidiary.cvoutype='01' or ia_subsidiary.cvoutype='33'))) or (isnull(IA_EstiSettle.iRdsid,0)<>0 and (ia_subsidiary.cvoutype='01' or ia_subsidiary.cvoutype='33'))) and IA_EstiSettle.dSVDate<='2006-02-28' AND (IA_EstiSettle.bAccount=0) and (isnull(IA_EstiSettle.iSVQuantity,0)<>0 or isnull(IA_EstiSettle.iSVPrice,0)<>0) AND ((Purbillvouchs.bExBill=1) or (rdrecord.cbustype='受托代销' or (rdrecord.cbustype<>'受托代销' and rdrecords.dsdate<='2006-02-28'))) AND ((RIGHT(IA_EstiSettle.cMonth,2)<'02') OR (IA_EstiSettle.cMonth is null)) AND IA_EstiSettle.cWhCode IN ('DD') order by IA_EstiSettle.PSVID,IA_EstiSettle.ID,ia_subsidiary.bflag desc,IA_EstiSettle.cWhCode,IA_EstiSettle.cCode 可通过如下脚本分析看where条件中如IA_EstiSettle.bAccount=0等标志、条件是否有问题,以进一步分析处理。 如果涉及数据库的修改,修改前请务必做好数据备份! |