QlikView - 保留



QlikView 中的 keep 命令用於組合來自兩個資料集的資料,同時保持兩個資料集都可在記憶體中使用。它與我們在上一章中介紹的連線非常相似,但有兩個主要區別。第一個區別是:在 keep 的情況下,兩個資料集都存在於 QlikView 的記憶體中,而在連線中,load 語句僅生成一個數據集,您必須從中選擇列。第二個區別是:不存在外部 keep 的概念,而在連線的情況下,我們有外部連線可用。

輸入資料

讓我們考慮以下兩個 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

內部保留

我們使用指令碼編輯器載入上述輸入資料,該編輯器透過按下 **Ctrl+E** 呼叫。選擇 **表格檔案** 選項並瀏覽輸入檔案。然後,我們編輯指令碼中的命令以在表之間建立內部保留。

keep_script

內部保留僅獲取兩個表中都存在的那些行。在本例中,獲取 **產品列表和產品銷售** 表中都可用的行。我們使用選單 **佈局 → 新工作表物件 → 表格框** 建立表格框。

首先,我們僅選擇 **productSales** 表,這使我們能夠顯示欄位 - ProductID、ProductCategory 和 SaleAmount。

keep_product_sales

接下來,我們選擇 **ProductList** 資料集,這使我們能夠顯示欄位 ProductID 和 ProductCategory。

keep_product_list

最後,我們選擇 **所有表格** 選項並獲取所有表格中所有可用的欄位。

keep_both_tables

以下報告顯示了上述步驟中的所有表格框。

keep_chart_innerkeep

左保留

左保留類似於左連線,它保留左側表中的所有行,以及 QlikView 記憶體中可用的兩個資料集。

左保留指令碼

以下指令碼用於使用左保留命令建立結果資料集。

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

左保留資料

當我們將指令碼更改為上述內容並使用 **Ctrl+R** 重新整理報表中的資料時,我們在工作表物件中獲得以下資料。

keep_chart_leftkeep

右保留

右保留類似於右連線,它保留右側表中的所有行,以及 QlikView 記憶體中可用的兩個資料集。

右保留指令碼

以下指令碼用於使用左保留命令建立結果資料集。

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

右保留資料

當我們將指令碼更改為上述內容並使用 **Ctrl+R** 重新整理報表中的資料時,我們在工作表物件中獲得以下資料。

keep_chart_rightkeep
廣告

© . All rights reserved.