Sql 根据行中满足的条件更新字段

Sql 根据行中满足的条件更新字段,sql,sql-update,Sql,Sql Update,我是否可以确认将员工代码(适用于所有PM行)更新为每个相应客户的VP的语法 Client Type Level Employee Code 9702 VP P 11 9702 PM P XXXX 9703 VP P 12 9703 PM P XXXX 我需要它看起来像下面 Client Type Level Employee C

我是否可以确认将员工代码(适用于所有PM行)更新为每个相应客户的VP的语法

Client  Type    Level   Employee Code
9702    VP       P          11
9702    PM       P          XXXX
9703    VP       P          12
9703    PM       P          XXXX
我需要它看起来像下面

Client  Type    Level   Employee Code
9702    VP       P          11
9702    PM       P          11
9703    VP       P          12
9703    PM       P          12

由于我目前没有访问任何MySQL服务器的权限,因此无法测试这一点,但如果内存足够,MySQL从联接表更新的语法应该如下所示:

UPDATE `your_table` a 
JOIN `your_table` b ON a.`Client` = b.`Client` AND b.`Type` = 'VP'
SET a.`Employee Code` = b.`Employee Code`
WHERE a.`Type` = 'PM'
对于MS SQL Server,语法如下:

UPDATE a
SET [Employee Code] = b.[Employee Code]
FROM your_table a 
JOIN your_table b ON a.Client = b.Client AND b.Type = 'VP'
WHERE a.Type = 'PM'

如果你想让我们确认语法,如果你真的发布了你想确认的语句,那会很有帮助。对不起,JPW。我不知道这个说法。我在这篇文章中用了“语法”来指代这句话。我想最好用简单的英语描述我想做的事情。你的示例结果的最后一行不应该有员工代码12作为PM吗?是的..对不起。不是一个好的开始,你用的是哪种数据库管理系统?博士后?Oracle?我运行了下面的代码,它在第一个a(prj_emp_resp_列表的别名)附近显示了不正确的语法更新prj_emp_resp_列表a在a.prj_code=b.prj_代码和a.resp_type_代码='PA'集合a.emp_code_resp=b上加入prj_emp_resp_列表b。emp_code_resp其中a.resp_type_code='1PM@james我假设你用的是MySQL版本?它应该可以工作,看看这个演示:@james但是你实际使用的是什么数据库?是MySQL还是别的什么?