QlikView – Keeps

The keep command in QlikView is used to combine data from two data sets keeping both the data sets available in memory. It is very similar to joins we covered in the previous chapter except for two major differences. The first difference is āˆ’ in the case of keeping; both the datasets are available in QlikView’s memory while in join the load statements produce only one data set from which you have to choose the columns. The second difference is āˆ’ there is no concept of the outer keep whereas we have outer join available in case of joins.

Input Data

Let us consider the following two CSV data files, which are used as input for further illustrations.

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

Inner Keep

We load the above input data using the script editor, which is invoked by pressing Control+E. Choose the option Table Files and browse for the Input file. Then we edit the commands in the script to create an inner keep between the tables.

Inner keep fetches only those rows, which are present in both the tables. In this case, the rows available inĀ both the Product List and Product SalesĀ table are fetched. We create Table Boxes using the menuĀ Layout ā†’ New Sheet Objects ā†’ Table Box.

First, we choose only theĀ productSalesĀ table, which gives us the fields – ProductID, ProductCategory, and SaleAmount to be displayed.

Next, we choose theĀ ProductListĀ data set, which gives us the fields ProductID and ProductCategory.

Finally, we choose the All Tables option and get all the available fields from all the tables.

The following report shows all the Tables Boxes from the above-given steps.

Left Keep

Left keep is similar to left join, which keeps all the rows from the table in the left along with both the data set is available in QlikView’s memory.

Left keep Script

The following script is used to create the resulting data sets with the left keep command.

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

Left keep Data

When we change the script as above and refresh the data in the report using Control+R, we get the following data in the sheet objects.

Right Keep

Right, keep is similar to left join, which keeps all the rows from the table in the right along with both the data set being available in QlikView’s memory.

Right keep Script

The following script is used to create the resulting data sets with the left keep command.

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

Right keep data

When we change the script as above and refresh the data in the report using Control+R, we get the following data in the sheet objects.

Leave a Reply