Netezza SQL 比较同一表中的两条记录
Posted
技术标签:
【中文标题】Netezza SQL 比较同一表中的两条记录【英文标题】:Netezza SQL comparing two records in the same table 【发布时间】:2014-09-22 14:22:24 【问题描述】:我正在尝试从一个表 (#1) 到另一个表 (#2) 进行基本插入,但是我在表 #2 中创建了一个标志列,为了正确设置,我需要能够确定源表中 2 条记录之间的差异 (#1)。这第二个表是一种验证表。它表示表 #1 中有多个记录,但它们是不同的版本(不同的版本是表 #1 中只有 1 或两个补充字段不同),表 #2 将显示两者之间的不同/三个版本。
在表 #2 中,我将有一个“为什么要添加”标志,这将是“P”、“B”或“J”,具体取决于表 #1 中的源记录。
如果表 #1 中两条记录之间的差异在日期列中,则标志将为“P”。如果两条记录之间的差异在列数量上,则标志将为“B”。如果差值是日期和金额,则标志将设置为“J”。
那么在我的插入语句中,我将如何比较同一张表中的两条记录的字段呢?
任何建议将不胜感激。我相信 Netezza SQL 我无法创建虚拟表,这就是为什么 google 不能很好地为我服务的原因。
【问题讨论】:
最好包含一个代码 sn-p。 【参考方案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;
【讨论】:
以上是关于Netezza SQL 比较同一表中的两条记录的主要内容,如果未能解决你的问题,请参考以下文章
请问如何使用SQL语句查询同一张表中互为相反数的两条记录!如A1=500,A2=-500,如何写SQL语句