2013-12-23 1 views
0

У меня есть запрос на выборку, как показано ниже:Преобразования Выбора и обновление в Update с подвыборкой в ​​DB2

SELECT COL1, COL2, COL3 
FROM 
(
    SELECT A.COL1, B.COL2, A.COL3 
    FROM 
    SCHEMA1.TAB1 A, SCHEMA2.TAB2 B 
    WHERE 
    A.SOMECOL = B.SOMECOL 
) TEMP 
WHERE NOT EXISTS 
(
    SELECT 1 FROM SCHEMA3.TAB3 C WHERE C.COL3 = TEMP.COL3 
) 

Теперь в моей текущей настройке коды, я бег SELECT первого, чтобы получить результаты, а затем в следующем шаг, я обновляю таблицу SCHEMA3.TAB3 с ниже запросом на обновлении перебирая результирующий набор:

UPDATE SCHEMA3.TAB3 SET COL1=?, COL2=? WHERE COL3=? 

Когда три значения параметров выходит из результата выше SELECT.

Но теперь я хочу преобразовать эти два шага выбора и обновления в один оператор обновления с подбором и полностью удалить параметры с параметрами.

Как я могу это сделать?

+1

Что-то здесь не вычисляется. Вы выбираете из TAB1 строки, в которых COL3 отсутствует в TAB3; как вы планируете обновлять в TAB3 строки, которые там не существуют? – mustaccio

ответ

0

Что-то кажется неправильным с вашим вопросом.

Вы обновляете, где TAB3.COL3 = TAB1.COL3, но в оригинале SELECT для получения значений вы устранили строки, где TAB3.COL3 = TAB1.COL3.

Смежные вопросы