将重复选择变成更新

Turning a duplicate selection into an update

我已经 select 通过以下方式获得了每条重复记录的计数和 ID:

select T1.ID,T2.Count
from MyTable T1
join (SELECT ID,Count(*) as Count FROM MyTable 
where Field_C=X 
and Field_S=Y  
group by NumberField,NameField having count(*)>1) T2 
on T1.NumberField=T2.NumberField
and T1.NameField = T2.NameField

这 returns 我想更新的记录的 ID (T1.ID) 和我想用 (T2.Count) 更新 CountField 的值。

只是不确定在走到这一步后如何更改为更新。

如果你有 select 你已经通过这种方式更新

    UPDATE MyTable T1
    join (SELECT ID,Count(*) as Count FROM MyTable 
    SET T1.ID = T2.Count
    where Field_C=X 
    and Field_S=Y  
    group by NumberField,NameField having count(*)>1) T2 
    on T1.NumberField=T2.NumberField 

我想在办公室度过了漫长的一天,但这很容易解决。我认为第一个 select 让我失望,直到我意识到我需要完全摆脱它,因为我不是 selecting 而是更新:

Update MyTable T1
join (SELECT ID,Count(*) as Count FROM MyTable 
where Field_C=X 
and Field_S=Y  
group by NumberField,NameField having count(*)>1) T2 
on T1.NumberField=T2.NumberField
and T1.NameField = T2.NameField
Set T1.CountField=T2.Count