當我運行這個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