2013-10-02 30 views
0

有一些非规范化的数据,沿着以下线路:数据标准化/搜索跨越多个领域

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' 
]; 

,我需要做的是比较这些字段水果的主列表什么(在另一台举行)。这意味着如果我选择了香蕉,ID 1和ID 2就会出现,如果我选择了Strawberry,ID 2和ID 3就会出现。

有没有什么办法可以创建一个能同时搜索所有3个字段的列表框?

回答

0

列表框只是一种机制,可让您“选择”某个字段中的值作为过滤器。 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; 

你可以看到表这将产生在这里: enter image description here

和数据模型是这样的: enter image description here

最后,所需的行为: enter image description here