根据连续满足的条件更新字段

时间:2014-11-17 21:14:45

标签: 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 Code
9702    VP       P          11
9702    PM       P          11
9703    VP       P          12
9703    PM       P          12

1 个答案:

答案 0 :(得分:1)

由于我目前无法访问任何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'