Когда я запускаю этот SQL-код, я получаю следующее сообщение об ошибке:обновления таблицы SQL на основе результатов Суб-Select
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
, он обновляет одну из этих повторяющихся записей с помощью ElementStartDate
+ 1, который удалит дубликат.
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)
Но разве это не создало бы новые дубликаты? Если, например, существует два экземпляра «СоглашенияNo1, ElementStartDate1, DateSeqNo1» и один экземпляр «СоглашенияNo1, ElementStartDate2, DateSeqNo1», где 'ElementStartDate2 = ElementStartDate1 + 1', разбивая пару дубликатов, используя вашу логику, фактически приведет к одному' СоглашениюNo1, ElementStartDate1, DateSeqNo1 'и два' СоглашенияNo1, ElementStartDate2, DateSeqNo1'. –
Привет, Андрей, я вижу, откуда вы. Однако каждая запись поступает только в тот же день каждый месяц, и поэтому, увеличивая значение «ElementStartDate», гарантируется, что не будет другой записи за день + 1. Я понимаю, что это не лучший вариант для того, что я пытаясь достичь, но это требуется только в течение 3-6 месяцев, поэтому я действительно ищу быстрое решение. – user3515329