在SQL中,我们可以编写如下查询:
Select field1,field2,field3,field4,field5,field6,field7
from table1 t1,table2 t2,table3 t3
where t1.field1 = t3.field3 and
t2.field2 = 'USD'
在Qlikview中,我创建了6个表的QVD,现在我想创建这6个QVD的单个QVD。不幸的是,这些表不包含主键。所以我不能使用加入。我也尝试过这样:
fact:
load *
from
[D:\path\fact*.qvd](qvd);
//To store all qvd's into one qvd.
store fact into [D:\path\facttable.qvd];
此查询创建一个facttable但只有2列,这些列是第一个事实表。图表清楚地表明了这一点:
因为它在内部给出了所有事实表的名称,包括fact,fact-1,fact-2等等,我已经将查询存储 fact 写入[D:\ path \ facttable .qvd];在此图中,事实表只包含两列,因此它创建的事实表只有两列。
请让我知道如何在Qlikview中编写此查询的解决方案,或者我们如何使用所有QVDS创建事实表?
提前致谢。
答案 0 :(得分:3)
由于每个qvd包含不同的字段名称,因此在加载*时会创建多个具有合成键的表。
您可以使用Concatenate Load
将每个qvd堆叠到一个事实表中。一个简单的例子是首先通过以下方式创建Fact表:
Fact:
Load * INLINE [
dummyField
];
现在您可以将qvd连接到Fact表:
concatenate(Fact)
load *
from
[D:\path\fact*.qvd](qvd);
//To store all qvd's into one qvd.
store Fact into [D:\path\facttable.qvd];
//drop the dummy field.
drop field dummyField;