2014-09-22 54 views
0

我试图做一个表(#1)到另一个(#2)的基本插入,但是我创建了表#2中的标志列,以便正确设置,我需要能够确定源表(#1)中2条记录之间的差异。这第二个表格是一个维珍表格。它表明表#1有多条记录,但是它们是不同的版本(不同的版本是表1中只有一个或两个补充字段不同),表#2将显示两个/三个版本。Netezza SQL比较同一个表中的两条记录

在表#2中,根据表#1中的源记录,我将有一个“为什么添加了这个”标志,它将是“P”,“B”或“J”。

如果表#1中的两条记录之间的差异在列日期中,那么该标志将为“P”。如果两个记录之间的差值是列数量,那么该标记将是“B”。如果差异是日期和金额,那么标志将被设置为“J”。

那么我怎么会在我的插入语句比较两个记录的字段从同一个表?

任何意见,将不胜感激。我相信在Netezza SQL我不能创建虚拟表,这就是为什么谷歌没有很好地为我服务。

+0

如果您包含代码段,这将是最好的。 – 2014-09-22 16:00:46

回答

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; 
相关问题