Обновление столбца для включения значений, полученных из другого
У меня есть ситуация, когда у меня есть таблица (tbl1), и я добавил к ней столбец, который в настоящее время является нулевым. Я хочу использовать оператор обновления, чтобы заполнить этот столбец значениями 3 других столбцов, соединенных вместе. 1 из этих других столбцов подходит для использования, но два других имеют значения, которые требуют объединения с другой таблицей (tbl2) для поиска кода, связанного с одним символом, согласно приведенному ниже примеру таблицы из таблицы tbl2. CostType и RefType из tbl2 существуют в tbl1, но я хочу перенести CostCode и RefCode в пустой столбец tbl1. Я также показал, что я пробовал с помощью Advantage SQL Architect. Не могу видеть, чтобы заставить его работать все же.
update tbl1
set emptycolumn=tbl.column1+tbl2.costcode+tbl2.refcode
from tbl1 left join tbl2 on (tbl1.costtype=tbl2.costtype)
left join tbl2 on (tbl1.reftype=tbl2.reftype)
CostCode CostType RefCode RefType
A Apportioned Cost E EmployeeID
J Funding Adjustment I Invoice
G Grant G Grant Recipient
M Grant Management L LearnRefNumber
O Other Costs N CompanyName
E Staff Expenses O Other
F Staff Full Time C Authorised Claims
P Staff Part Time A Audit Adjustment
U Unit Cost
D Unit Cost Deduction
S Start Payment
C Completion Payment
1 ответ
Я считаю, что ваш синтаксис в порядке, так что я думаю, значение остается NULL
, Если это так, вам может понадобиться coalesce()
:
update tbl1
set emptycolumn = (coalesce(tbl.column1, 0) + -- not sure if it starts as NULL
coalesce(tbl2.costcode, 0) +
coalesce(tbl2.refcode, 0)
)
from tbl1 left join
tbl2
on tbl1.costtype = tbl2.costtype left join
tbl2
on tbl1.reftype = tbl2.reftype;
Если вы хотите объединить строки, используйте ''
скорее, чем 0
,