У меня есть 2 таблицы. Тот, который имеет имена менеджеров и нулевой столбец, который я хочу вставить данные из таблицы 1 (имеющей иерархию). Я вычислил нашу часть вставки, но вместо того, чтобы использовать точное имя, я хочу передать имя из таблицы 2 в таблицу 1, используя переменную, чтобы ее динамика. сообщите мне, если это можно сделать и как это сделать.Как передать имя как переменную из одной таблицы в другую
UPDATE direct_manager_report
Set Manager_level_number =
(Select 'Manager_Level_0' from manager_hierarchy where level_0_manager_name = 'ABC'
UNION
Select 'Manager_Level_1' from manager_hierarchy where level_0_manager_name < > 'ABC' AND level_1_manager_name = 'ABC'
UNION
Select 'Manager_Level_2' from manager_hierarchy where level_1_manager_name < > 'ABC' AND level_2_manager_name = 'ABC'
UNION
Select 'Manager_Level_3' from manager_hierarchy where level_2_manager_name < > 'ABC' AND level_3_manager_name = 'ABC'
)
Where full_name = 'ABC'
Откуда вы получите имена? И действительно ли этот код дает вам необходимое вам обновление? –
'' Manager_Level_0'' является постоянной строкой. Вы имели в виду столбец с именем «Manager_Level_0»? Кроме того, я не думаю, что вы можете обновить поле с запросом, который имеет более 1 строки (и это тоже не имеет смысла). Я предполагаю, что вы хотите заменить '' ABC'' на 'direct_manager_report.someColumn' (который, вероятно, будет работать именно так). – Dukeling
Уровень менеджера 0 - это 1-й столбец в иерархии, который доходит до 14. То, что я пытаюсь выполнить, - передать имя менеджера из таблицы 2 (direct_manageR_report) в таблицу 1 (manager_hierarchy) через переменную и найти самый высокий уровень, который занимает менеджер в иерархии. в вышеупомянутом заявлении sql ABC находится на уровне 3, который будет отображаться и заполняться в таблице direct_manager_report. –