我想知道是否有人可以帮我解决以下 SQL 代码。
我有一张桌子,上面有员工名单及其所有详细信息。我有一个包含以下各列的示例表
名字 | 姓氏 | posn_ref | line_mamanger | line_mamanger_posn_ref |
---|---|---|---|---|
啊啊 | bb | 123 | ccc ddd | |
ccc | dd | 456 | eeecvb | |
xxx | yyy | 789 | zzhh | |
zz | 呵呵 | 890 | ggg SAS | |
gg | SAS | 322 | hnj mnb | |
哎呀 | cvb | 334 | klj vvc |
我的表称为员工。
我想要实现的是查看员工的 line_manger(第 1 列和第 2 列)并返回直线经理的 posn_ref 编号并将其添加到最后一列(line_mamanger_posn_ref)。因此,在上面的示例中,员工 aaa 的直线经理是“ccc ddd”,而 ccc ddd 的 posn_ref 是 456,因此在员工 aaa 的 line_mamanger_posn_ref 中,它将插入 456 等等。
我希望这一点很清楚,我只有一张表,但我需要为每个员工添加与经理的参考号相对应的 line_mamanger_posn_ref 值。我正在使用 Google Bigquer SQL(标准 SQL)
如有任何帮助,我们将不胜感激
只需对其自身进行连接就足够了(这是针对 tsql 而不是 psql,尽管实现应该类似):
UPDATE e
SET line_manager_posn_ref = manager.posn_ref
FROM employee AS e
JOIN employee AS manager
ON e.line_manager = manager.forename + ' ' + manager.surname