2014-08-27 4 views

ответ

5

Запоминание таблицы

Вы не можете хранить больше, чем один отдельный стол в файл QVD. Причиной этого является то, что формат QVD сохраняет только «образ» памяти одной таблицы и, таким образом, не включает метаданные для любых ссылок на другие таблицы.

Поэтому, если вы хотите хранить несколько таблиц в файле QVD вы должны либо:

  • сохранять их как отдельные QVDs
  • Объедините их в единую таблицу (например, с помощью JOIN с, 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 будет автоматически выводить из поля ссылки как на исходную модель, при условии, что имена полей совпадают с именами таблиц.

Смежные вопросы