我正在尝试从一个表(#1)到另一个表(#2)进行基本插入,但是我在表#2中创建了一个标志列,为了正确设置,我需要能够确定源表中的2条记录之间的差异(#1)。第二张表是一张中间表。它表示表#1中存在多个记录,但它们是不同的版本(不同的版本是表#1中只有1或2个补充字段不同),表#2将显示两者之间的不同/三个版本。
表#2中的我将有一个“为什么被添加”标志,它将是“P”,“B”或“J”,具体取决于表#1中的源记录。
如果表#1中两个记录之间的差异在列日期中,那么该标志将为“P”。如果两个记录之间的差异是列数,则标志将为“B”。如果差异是日期和金额,则该标志将设置为“J”。
那么在我的insert语句中如何比较同一个表中的两个记录字段?
任何建议都将不胜感激。我相信Netezza SQL我无法创建虚拟表,这就是为什么谷歌没有很好地为我服务。
答案 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;