Tsql 使用嵌套的Select语句更新

Tsql 使用嵌套的Select语句更新,tsql,sql-update,Tsql,Sql Update,我有一个表,其中包含3个数据字段:Acct、YMCode和EmployeeID。YMCode是一个格式为201308,201307等的整数。对于每个Acct,我需要选择YMCode用于201308的EmployeedID,然后将账户的所有其他YMCodes更新为201308中使用的EmployeedID 因此,对于表中的每个客户帐户 Update MyTable Set EmployeeID = EmployeeID used in YMCode 201308 很难处理它。将其放入事务中,并在

我有一个表,其中包含3个数据字段:
Acct
YMCode
EmployeeID
。YMCode是一个格式为
201308
201307
等的整数。对于每个
Acct
,我需要选择
YMCode
用于
201308
EmployeedID
,然后将账户的所有其他
YMCodes
更新为
201308
中使用的
EmployeedID

因此,对于表中的每个客户帐户

Update MyTable
Set EmployeeID = EmployeeID used in YMCode 201308

很难处理它。

将其放入事务中,并在提交之前查看结果,但我认为这正是您想要的:

UPDATE b
SET EmployeeID = a.EmployeeID
FROM MyTable a
INNER JOIN MyTable b
ON a.[Acct#] = b.[Acct#]
where a.YMCode = 
(SELECT MAX(YMCode) from MyTable)

要获得最大YMCode,只需在末尾添加select语句。

奇怪的是,当我在更大的生产数据库上运行此语句时,它并没有更新所有内容。它正确更新了一些帐户,而完全忽略了其他帐户。