我有一个表,我试图与自己匹配并在主键不匹配时创建记录。这是表格的一个例子
Location Value
A 5
B 10
C 15
我想获得下表
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
我复制了第一个表并尝试了各种连接,但我无法得到结果。任何人都可以提出如何执行此操作的建议吗?
答案 0 :(得分:2)
看起来你想要矢量产品,即外连接。但要进行连接,您需要一个行匹配的列。这里的一个技巧是创建一个只有一个值的新列,例如" 1"对于所有行(使用"插入计算列" - 确保冻结列,以便稍后可以加入它)。然后使用具有该虚拟列的列作为关键字段,将该表的完全外部连接与其自身的副本(使用"插入列"用于连接的功能)进行完全外部连接。然后,您将获得上面显示的组合,但它也会有匹配键的行。
要删除匹配项,您可以轻松创建一个带有表达式测试的新列,如果主键匹配如下:
if([Location]=[Location(2)],"Match","NoMatch")
然后过滤到匹配的行,如果您不想在数据集中删除它们,请删除。
你当然可以在这里询问Spotfire问题,但你也可以在这里尝试TIBCO社区的Spotfire部分: