在QlikView中将多个表存储到QVD中

时间:2014-08-27 08:05:46

标签: qlikview

是否可以将多个表格的数据存储到单个QVD文档中?

如果是这样,我如何在这个QVD中存储和加载多个表?

2 个答案:

答案 0 :(得分:5)

存储表格

您不能将多个不同的表存储到QVD文件中。原因是QVD格式只存储内存"图像"单个表的一部分,因此不包括任何指向其他表的链接的元数据。

因此,如果您希望在QVD文件中存储多个表,则必须:

  • 将它们存储为单独的QVD
  • 将它们合并到一个表格中(例如,通过JOINapplymap等),然后将表格存储到QVD文件中。

例如,假设您有以下架构:

Example Table layout with two tables

Orders:
LOAD * INLINE [
    Product, Country, Value
    A, USA, 100
    B, UK, 200
    C, FR, 300
];

Products:
LOAD * INLINE [
    Product, Weight, Colour
    A, 10, Red
    B, 50, Yellow
    C, 70, Green
];

您无法将此模型存储到单个QVD文件中。回顾我们的两个选择:

以单独的QVD存储

您可以稍微更改脚本:

Orders:
LOAD * INLINE [
    Product, Country, Value
    A, USA, 100
    B, UK, 200
    C, FR, 300
];

Products:
LOAD * INLINE [
    Product, Weight, Colour
    A, 10, Red
    B, 50, Yellow
    C, 70, Green
];

STORE Orders INTO Orders.qvd (qvd);
STORE Products INTO Products.qvd (qvd);

将它们合并到一个表格中

根据您的数据模型,您可以使用JOIN和其他QV功能:

Orders:
LOAD * INLINE [
    Product, Country, Value
    A, USA, 100
    B, UK, 200
    C, FR, 300
];

LEFT JOIN
LOAD * INLINE [
    Product, Weight, Colour
    A, 10, Red
    B, 50, Yellow
    C, 70, Green
];

STORE Orders INTO Orders.qvd (qvd);

<强>载入

要从存储的QVD加载数据,只需在脚本中添加LOAD语句,例如:

Orders:
LOAD
    *
FROM Orders.qvd (qvd);

Products:
LOAD
    *
FROM Products.qvd (qvd);

如果字段名称与存储表格时相同,QlikView将根据您的原始模型自动推断字段链接。

答案 1 :(得分:0)

如果两个表没有共同的字段名,只需将其保存为qvw,您可以将两个表存储在仪表板文件中。但它是专有的,只能由QlikView打开,但你似乎已经有了产品......