Sql 根据行中满足的条件更新字段
我是否可以确认将员工代码(适用于所有PM行)更新为每个相应客户的VP的语法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
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还是别的什么?