2014-09-22 4 views
0

Я пытаюсь сделать базовую вставку из одной таблицы (# 1) в другую (# 2), однако я создал столбец флага в таблице №2, который для правильного набора , Мне нужно определить разницу между двумя записями в исходной таблице (# 1). Эта вторая таблица представляет собой таблицу для проверки. Он указывает, что есть несколько записей из таблицы №1, но они разные версии (другая версия состоит в том, что только 1 или два дополнительных поля в таблице №1 различны), а таблица №2 покажет, что было между двумя/три версии.Netezza SQL, сравнивая две записи в одной таблице

в таблице №2 У меня будет флаг «Почему это был добавлен», который будет либо «P», «B», либо «J» в зависимости от исходных записей в таблице №1.

Если разница между двумя записями в таблице № 1 была в столбце даты, то флаг будет «P». Если разница между двумя записями была в столбце, то флаг будет «B». Если разница была как дата, так и сумма, тогда флаг будет установлен на «J».

Так как бы я мог заниматься во время моей инструкции insert, сравнивая поля двух записей из одной таблицы?

Любые советы будут оценены. Я верю в Netezza SQL. Я не могу создавать виртуальные таблицы, поэтому Google не очень хорошо меня обслуживал.

+0

Было бы лучше, если бы вы включили фрагмент кода. –

ответ

1
select t1.id, 'j' 
from table t1 
join table t2 
    on t2.id t1.id 
and t2.date <> t1.date 
and t2.amount <> t2.amount; 
select t1.id, 'p' 
from table t1 
join table t2 
    on t2.id == t1.id 
and t2.date <> t1.date 
and t2.amount = t2.amount; 
select t1.id, 'b' 
from table t1 
join table t2 
    on t2.id = t1.id 
and t2.date = t1.date 
and t2.amount <> t2.amount; 
Смежные вопросы