Команда keep в QlikView используется для объединения данных из двух наборов данных, сохраняя оба набора данных в памяти. Это очень похоже на соединения, которые мы рассмотрели в предыдущей главе, за исключением двух основных отличий. Первое отличие — в случае удержания; оба набора данных доступны в памяти QlikView, в то время как при объединении операторы загрузки генерируют только один набор данных, из которого вы должны выбрать столбцы. Второе отличие заключается в том, что нет понятия внешнего хранения, где у нас есть внешнее соединение в случае соединений.
Входные данные
Давайте рассмотрим следующие два файла данных CSV, которые используются в качестве входных данных для дальнейших иллюстраций.
Product List: ProductID,ProductCategory 1,Outdoor Recreation 2,Clothing 3,Costumes & Accessories 4,Athletics 5,Personal Care 6,Hobbies & Creative Arts Product Sales: ProductID,ProductCategory,SaleAmount 4,Athletics,1212 5,Personal Care,5211 6,Hobbies & Creative Arts,1021 7,Display Board,2177 8,Game,1145 9,soap,1012 10,Beverages & Tobacco,2514
Внутренняя крепость
Мы загружаем вышеуказанные входные данные с помощью редактора сценариев, который вызывается нажатием Control + E. Выберите опцию Table Files и найдите файл ввода. Затем мы редактируем команды в скрипте, чтобы создать внутреннюю привязку между таблицами.
Inner keep выбирает только те строки, которые присутствуют в обеих таблицах. В этом случае выбираются строки, доступные как в Списке продуктов, так и в таблице Продажи продуктов . Мы создаем Ящики для таблиц, используя меню Макет → Новые объекты листа → Ящик для таблицы .
Сначала мы выбираем только таблицу productSales , в которой отображаются поля ProductID, ProductCategory и SaleAmount.
Далее мы выбираем набор данных ProductList , который дает нам поля ProductID и ProductCategory.
Наконец, мы выбираем опцию Все таблицы и получаем все доступные поля из всех таблиц.
В следующем отчете показаны все поля таблиц из приведенных выше шагов.
Левый замок
Левое удержание аналогично левому соединению, в котором все строки таблицы слева хранятся вместе с обоими наборами данных, доступными в памяти QlikView.
Оставь Сценарий
Следующий скрипт используется для создания результирующих наборов данных с помощью левой команды keep.
productsales: LOAD ProductID, ProductCategory, SaleAmount FROM [C:\Qlikview\data\product_lists.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq); left keep(productsales) productlists: LOAD ProductID, ProductCategory FROM [C:\Qlikview\data\Productsales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
Оставьте данные
Когда мы изменим скрипт, как описано выше, и обновим данные в отчете, используя Control + R , мы получим следующие данные в объектах листа.
Право держать
Хранение справа аналогично левому соединению, при котором все строки таблицы справа сохраняются вместе с обоими наборами данных, доступными в памяти QlikView.
Право держать сценарий
Следующий скрипт используется для создания результирующих наборов данных с помощью левой команды keep.
productsales: LOAD ProductID, ProductCategory, SaleAmount FROM [C:\Qlikview\data\product_lists.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq); right keep(productsales) productlists: LOAD ProductID, ProductCategory FROM [C:\Qlikview\data\Productsales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
Право хранить данные
Когда мы изменим скрипт, как описано выше, и обновим данные в отчете, используя Control + R , мы получим следующие данные в объектах листа.