2014-08-27 76 views

回答

5

存储表

不能超过一个不同的表存储到一个QVD文件。原因在于QVD格式仅存储单个表的内存“映像”,因此不包含到其他表的任何链接的元数据。

因此,如果你想存储在一个文件QVD多个表,你必须:

  • 并将其作为单独QVDs
  • 它们合并成一个单一的表(例如,通过JOIN S,applymap等。 ),然后将表存储到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。回顾我们的两个选项:

商店作为单独QVDs

可以稍微改变脚本:

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); 

加载

要从存储QVDs加载数据,你只需要一个LOAD语句添加到您的脚本,例如:

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

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

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

相关问题