组织间结算报错:MERGE 语句试图多次更新或删除同一行
金蝶云社区-D
D
1人赞赏了该文章 639次浏览 未经作者许可,禁止转载编辑于2019年04月26日 09:11:10

报错内容:会计核算体系【财务会计核算体系】,MERGE 语句试图多次更新或删除同一行。目标行与多个源行匹配时会出现这种情况。MERGE 语句无法多次更新/删除目标表的同一行。请简化 ON 子句,以确保目标行最多与一个源行匹配,也可以使用 GROUP BY 子句对源行分组。 MERGE INTO #TM_IOS_MIDSETTLEDATA TM USING(SELECT DISTINCT TMS.FUNIQUEID, ST.FCurrencyId, STD.FMarkKey, STD.FBIZFORMID, STD.FBizEntryId, STD.FBaseQTY, STD.FPrice, STD.FCONFIGID, ST.FIsIncludedTax, STD.FTaxPrice, STD.FTaxRate, STD.FIsFreeGift FROM T_IOS_ARSETTLEMENT ST INNER JOIN T_IOS_ARSETTLEMENTDETAIL STD ON ST.FID = STD.FID INNER JOIN T_IOS_MIDSETTLE TMS ON (((STD.FBizEntryId = TMS.FUpDownEntryId AND STD.FBIZFORMID = TMS.FUpDownFormID) AND STD.FCONFIGID = TMS.FUPDOWNCONFIGID) AND TMS.FCONTEXTGUID = '0e929a494b9542b0ab785530683413dc') WHERE ST.FACCTSYSTEMID = 1) T_ReciveST ON (T_ReciveST.FUNIQUEID = TM.FGID) WHEN MATCHED THEN UPDATE SET TM.FReciveMarkKey = T_ReciveST.FMarkKey, TM.FRecCurrencyId = T_ReciveST.FCurrencyId, TM.FRecivePrice = T_ReciveST.FPrice, TM.FReciveIsIncludedTax = T_ReciveST.FIsIncludedTax, TM.FReciveTaxPrice = T_ReciveST.FTaxPrice, TM.FReciveTaxRate = T_ReciveST.FTaxRate, TM.FIsFreeGift = T_ReciveST.FIsFreeGift; 在 Kingdee.BOS.App.Data.AbstractDatabase.ExecuteNonQuery(DbCommand command, IEnumerable`1 listParam)
在 Kingdee.BOS.App.Data.DBUtils.ExecuteWithTime(Context ctx, String strSQL, IEnumerable`1 paramList, Int32 commandTimeout)
在 Kingdee.K3.SCM.App.IOS.Core.CreateOverOrgAccount.CreateSettleData(Context ctx)
在 Kingdee.K3.SCM.App.IOS.Core.CreateOverOrgAccount.BeforeSaveData(IOSCreateResult iosCreateResult)
在 Kingdee.K3.SCM.App.IOS.Core.OverOrgAccountService.SaveSettle(Context ctx, IOSSettleParams iosParams)

解决方法:使用提示中的SQL代码,查询出相关数据,找到重复的数据,在查询到对应的单据编号 到前台删除【本次重新单据:应付结算清单】【查询相关数据时,当前的报错界面不要退出】
使用错误提示中的SQL代码:
【SELECT DISTINCT TMS.FUNIQUEID, ST.FCurrencyId, STD.FMarkKey, STD.FBIZFORMID, STD.FBizEntryId
, STD.FBaseQTY, STD.FPrice, STD.FCONFIGID, ST.FIsIncludedTax, STD.FTaxPrice
, STD.FTaxRate, STD.FIsFreeGift,'----',ST.*
FROM T_IOS_ARSETTLEMENT ST
INNER JOIN T_IOS_ARSETTLEMENTDETAIL STD ON ST.FID = STD.FID
INNER JOIN T_IOS_MIDSETTLE TMS
ON STD.FBizEntryId = TMS.FUpDownEntryId
AND STD.FBIZFORMID = TMS.FUpDownFormID
AND STD.FCONFIGID = TMS.FUPDOWNCONFIGID
AND TMS.FCONTEXTGUID = '54c61a36c27344fda52dfdfb231e49af'
WHERE ST.FACCTSYSTEMID = 1】