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 和 2 会出现,如果我选择草莓,ID 2 和 3 会出现。

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

4

1 回答 1

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;

您可以在此处查看生成的表格: 在此处输入图像描述

数据模型如下所示: 在此处输入图像描述

最后,期望的行为: 在此处输入图像描述

于 2013-10-02T16:24:19.820 回答