2016-09-30 94 views
0

我有一张表,我试图与自己匹配并在主键不匹配时创建一条记录。下面是我想获得下表Spotfire加入无与伦比的记录

Location Value Location(2) Value(2) 
A   5  B  10 
A   5  C  15 
B   10  A  5 
B   10  C  15 
C   15  A  5 
C   15  B  10 

我已经复制了第一个表,并尝试了各种连接,但我不能得到的结果表

Location Value 
A  5 
B  10 
C  15 

的例子。任何人都可以提供一个关于如何执行的建议吗?

+0

@ cookiemnstr247-是主键“位置”?另外,通过将表与自身进行匹配,你的意思是什么?你能解释更多吗? – ksp585

+0

这是正确的,位置是主键。我的意思是我把我的初始表,重复它,然后尝试'插入' - >'列',匹配位置字段,并尝试每个连接方法,使用同一个表的两个实例。 – cookiemnstr247

回答

2

看起来像你想要的矢量产品,即外连接。但要建立连接,您需要一个行匹配的列。这里的一个窍门是创建一个只有一个值的新列,如所有行的“1”(使用“插入计算列” - 确保冻结列以便稍后加入)。然后,使用具有该虚拟列的列作为关键字段,对该表进行完整外部连接,并为其自身创建一个副本(使用“插入列”功能进行连接)。然后,您将获得上面显示的组合,但它也会有行匹配的行。

要删除的比赛,你可以很容易地创建一个表达式测试一个新列,如果主键匹配,如:

if([Location]=[Location(2)],"Match","NoMatch") 

然后筛选到匹配的行删除,如果你不希望他们数据集。

你当然可以问Spotfire中的问题在这里,但你也可以试试这里的TIBCO共同体的Spotfire部分:

https://community.tibco.com/products/spotfire

+0

非常酷,谢谢! – cookiemnstr247

+0

为什么你不能加入哪里1 = 1或列<> colimn2? – scsimon

相关问题