存储表格
您不能将多个不同的表存储到QVD文件中.原因是QVD格式仅存储单个表的内存"图像",因此不包括任何指向其他表的链接的元数据.
因此,如果您希望在QVD文件中存储多个表,则必须:
JOIN
s applymap
等),然后将表存储到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
];
Run Code Online (Sandbox Code Playgroud)
您无法将此模型存储到单个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);
Run Code Online (Sandbox Code Playgroud)
将它们组合成一个表格
根据您的数据模型,您可以使用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);
Run Code Online (Sandbox Code Playgroud)
载入中
要从存储的QVD加载数据,只需LOAD
在脚本中添加一个语句,例如:
Orders:
LOAD
*
FROM Orders.qvd (qvd);
Products:
LOAD
*
FROM Products.qvd (qvd);
Run Code Online (Sandbox Code Playgroud)
然后QlikView将根据您的原始模型自动推断字段链接,前提是字段名称与存储表格时相同.