当我运行这个SQL代码,我收到以下错误消息导致SQL表:更新基于从子选择
Msg 116, Level 16, State 1, Line 17
Only one expression can be specified in the select list when the subquery
is not introduced with EXISTS.
我要的是一旦有事情从我的更新查询返回其有与AgreementNo, ElementStartDate and DateSeqNo
相同,它会使用+ 1的ElementStartDate
更新其中一个重复记录,这将删除重复记录。
Update [WASP_Mart_EmbassyActuarial].[dbo].[tblARM_OmegaSource]
SET ElementStartDate = ElementStartDate + 1
WHERE AgreementNo IN
(SELECT
count(*) as [Count],
[AgreementNo],
[ElementStartDate],
[DateSeqNo],
getdate() as Today
FROM [WASP_Mart_EmbassyActuarial].[dbo].[tblARM_OmegaSource]
GROUP BY
[AgreementNo],
[ElementStartDate],
[DateSeqNo]
HAVING COUNT(*) = 2)
但是,这不会创建新的重复?如果例如有两个'AgreementNo1,ElementStartDate1,DateSeqNo1'的实例和'AgreementNo1,ElementStartDate2,DateSeqNo1'的一个实例,其中'ElementStartDate2 = ElementStartDate1 + 1',使用你的逻辑打破重复对将有效地产生一个'AgreementNo1,ElementStartDate1,DateSeqNo1 '和两个'AgreementNo1,ElementStartDate2,DateSeqNo1'。 –
嗨,安德烈,我可以看到你来自哪里。然而,每条记录只在每个月的同一天进来,因此通过增加'ElementStartDate'确保当天不会有另一条记录+1。我知道这不是我最喜欢的选项试图实现,但这只是需要另外3-6个月,所以我真的只是寻找一个快速修复。 – user3515329