凭证过账时提示错误 MERGE 语句试图多次更新或删除同一行原创
金蝶云社区-耿强
耿强
23人赞赏了该文章 1,296次浏览 未经作者许可,禁止转载编辑于2022年11月24日 12:15:19

凭证过账时提示错误:
      MERGE 语句试图多次更新或删除同一行。目标行与多个源行匹配时会出现这种情况。MERGE 语句无法多次更新/删除目标表的同一行。请简化 ON 子句,以确保目标行最多与一个源行匹配,也可以使用 GROUP BY 子句对源行分组。
     MERGE 语句试图多次更新或删除同一行。目标行与多个源行匹配时会出现这种情况。MERGE 语句无法多次更新/删除目标表的同一行。请简化 ON 子句,以确保目标行最多与一个源行匹配,也可以使用 GROUP BY 子句对源行分组。
  在 Kingdee.K3.FIN.GL.App.Core.AbstractVoucherPost.PostVoucher(Context ctx, VoucherPostParameters postParam)




应该是科目修改后挂了核算维度,而修改前录的凭证维度ID为0导致的。执行下面的sql, 可以把这种有问题的凭证查询出来。编辑这些凭证,重新选择核算维度,保存凭证。将这些凭证全部修复,再次执行下面的sql没有结果,说明凭证已正常。 继续过账。




SELECT

        b.FNAME 账簿,

        a.FYEAR 年,

        a.FPERIOD 期间,

        c.fname 凭证字,

        a.fvouchergroupno 凭证号 

FROM

        T_GL_VOUCHER a

        LEFT JOIN T_BD_ACCOUNTBOOK_L b ON a.FACCOUNTBOOKID = b.FBOOKID 

        AND b.FLOCALEID = 2052

        LEFT JOIN T_BD_VOUCHERGROUP_L c ON a.FVOUCHERGROUPID = c.FVCHGROUPID 

        AND c.FLOCALEID = 2052 

WHERE

        FVOUCHERID IN ( SELECT fvoucherid FROM T_GL_VOUCHERENTRY WHERE faccountid IN ( SELECT FACCTID FROM T_BD_ACCOUNTFLEXENTRY GROUP BY FACCTID ) and FDETAILID=1 )


赞 23