2016-04-27 3 views
0

Я пытаюсь объединить временную таблицу в мою основную таблицу, чтобы избежать дубликатов:Teradata колонка слияния/параметр table.A.A не существует

MERGE INTO MYTABLE A USING 
    (
     SELECT Y, Z, X 
     FROM MYTABLE_TEMP T 
     JOIN (SELECT X FROM TABLE_X 
     WHERE COLUMN_N = '81205' GROUP BY 1) S ON S.X = T.X 
    ) B 
    ON (A.Y = B.Y) AND (A.X = B.X) 
WHEN MATCHED THEN UPDATE SET A.LOAD_DS = B.LOAD_DS 
WHEN NOT MATCHED THEN INSERT VALUES (B.Y, B.Z, B.X, B.LOAD_DS);

Я получаю сообщение об ошибке: Не удался MERGE. 3810: Колонка/Параметр «MYTABLE.A.A» не существует.

ответ

0

Вы не должны квалифицировать имя целевого столбца в предложении SET, это же правило существует для операторов UPDATE.

MERGE INTO MYTABLE A USING 
    (
     SELECT Y, Z, X 
     FROM MYTABLE_TEMP T 
     JOIN (SELECT X FROM TABLE_X 
     WHERE COLUMN_N = '81205' GROUP BY 1) S ON S.X = T.X 
    ) B 
    ON (A.Y = B.Y) AND (A.X = B.X) 
WHEN MATCHED THEN UPDATE SET /*remove the A.*/ LOAD_DS = B.LOAD_DS 
WHEN NOT MATCHED THEN INSERT VALUES (B.Y, B.Z, B.X, B.LOAD_DS); 
Смежные вопросы