Microsoft SQL Server2000 同一张表中,其中某行某列的值 赋值给 另一行的同一列

表kc_dm 中有几千条数据,在字段'dm'列 数值一样的情况下,把'ckdm' 列值为"00" 行的 字段"ncjcsl" 和字段"ncye" 的值 赋值给 'ckdm' 列值为"01" 对应的两个字段

分别设置为A和B表,直接用update更新
update kc_dm set ncjcsl=B.ncjcsl, ncye=B.ncye
from kc_dm A, kc_dm B
where A.ckdm=00 and B.ckdm=01 and A.dm=B.dm追问

服务器: 消息 8154,级别 16,状态 1,行 1
表 'kc_dm' 不明确。

追答

update kc_dm set A.ncjcsl=B.ncjcsl, A.ncye=B.ncye
from kc_dm A, kc_dm B
where A.ckdm=00 and B.ckdm=01 and A.dm=B.dm

追问

服务器: 消息 1032,级别 15,状态 1,行 1
无法使用列前缀 'A'。此前缀必须与 UPDATE 子句 'kc_dm' 中的对象匹配。
服务器: 消息 1032,级别 15,状态 1,行 1
无法使用列前缀 'A'。此前缀必须与 UPDATE 子句 'kc_dm' 中的对象匹配。

追答

update kc_dm set ncjcsl=(select B.ncjcsl from kc_dm B where A.ckdm='00' and B.ckdm='01' and A.dm=B.dm) , ncye=(select C.ncye from kc_dm C where A.ckdm='00' and C.ckdm='01' and A.dm=C.dm)
from kc_dm A
where A.ckdm='00'

温馨提示:答案为网友推荐,仅供参考