有一些非正规化数据,如下所示:
FruitData:
LOAD * INLINE [
ID,ColumnA, ColumnB, ColumnC
1,'Apple','Pear','Banana'
2,'Banana','Mango','Strawberry'
3,'Pear','Strawberry','Kiwi'
];
MasterFruits
LOAD * INLINE [
Fruitname
'Apple'
'Banana'
'Pear'
'Mango'
'Kiwi'
'Strawberry'
'Papaya'
]; 我需要做的是将这些字段与水果的主列表(保存在另一个表中)进行比较。这意味着如果我选择Banana,ID1和ID2就会出现,如果我选择Strawberry,ID2和3就会出现。
有没有什么方法可以创建一个列表框,同时搜索所有3个字段?
发布于 2013-10-03 00:24:20
列表框只是一种允许您“选择”某个字段中的值作为筛选器的机制。Qlikview所做的事情背后真正的魔力来自于数据模型中的关联。因为您的表没有公共字段,所以您不能,例如,加载Fruitname的列表框并单击某些内容,然后让它更改其他字段的列表框,如ColumnA、B或C。要获得您想要的行为,您需要将这两个表关联起来。这可以通过将不同的列连接成一列来实现(本质上是对数据进行标准化)。
[LinkTable]:
LOAD Distinct ColumnA as Fruitname,
ID
Resident FruitData;
Concatenate([LinkTable])
LOAD Distinct ColumnB as Fruitname,
ID
Resident FruitData;
Concatenate([LinkTable])
LOAD Distinct ColumnC as Fruitname,
ID
Resident FruitData;您可以在此处看到该命令生成的表:

数据模型如下所示:

最后,是所需的行为:

https://stackoverflow.com/questions/19133010
复制相似问题