Как заполнить столбец в таблице, на основе других столбцов?
Здравствуйте, не подскажете как можно заполнить столбец одной(t1) таблицы из таблицы(t2) таким образом:
Если столбец t1.id = t2.id, то столбец таблицы t1.name будет заполнен полями из таблицы t2.name, т.е. строки столбца name зависят от строк столбца id.
На словах просто на деле пока не могу понять как решить, с ораклом работаю недавно. Конечно про update знаю, и поэтому этот способ опускаем, есть ли другой способ? Столбца id конечно же уникальны, а столбцы name повторяются.
Здравствуйте, возникает проблема при мердже, не подскажете как решить?
Error starting at line : 15 in command -
merge into contract_city e
using contract_manager h
on (e.contract_id = h.contract_id)
when matched then
update set e.manager_id = h.manager_id
Error report -
ORA-30926: невозможно получить устойчивый набор строк в исходных таблицах
Максим Sh, хм, и правда, запустил ваш код и он показывает например первая строка contract_id = 1053347 cnt = 2, тогда я даже не знаю как их связать, хотя я нашел еще один столбец он так же как и contract одинаков в обоих таблицах, created_by, но он повторяется в обоих таблицах, те. как я понял есть 2 одинаковых created_by но там разные contract_id, а manager_id может повторяться
Аааа просто вынос мозга
Максим Sh, хм, ну первое точно нет иначе бд. к чертям полетит, значит нужно как то в условии прописать, что-то типа если created_by и contract_id идентичны то брать запись manager_id из этой строки и обновлять ее в другой таблице, пробовал через and но в операторе update, не получилось в merge еще не пробовал
Error starting at line : 15 in command -
merge into contract_city e
using contract_manager h
on (e.created_by = h.created_by and e.contract_id = h.contract_id)
when matched then
update set e.manager_id = h.manager_id
Error report -
ORA-30926: невозможно получить устойчивый набор строк в исходных таблицах
хм... аналогичная ошибка, видимо что-то я точно делаю не так, хотя добавил еще одно условие
Вы, для начала, решите бизнесовую задачу - каким условиям должна соответствовать строка, в случае их дублирования. Проверьте, что такая строка получается одна.
А затем уже можно будет эти условия технически описывать для БД.