QlikView - เก็บไว้

คำสั่ง 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 จะดึงเฉพาะแถวเหล่านั้นซึ่งมีอยู่ในทั้งสองตาราง ในกรณีนี้แถวที่มีอยู่ในboth Product List and Product Salesมีการดึงตาราง เราสร้างกล่องตารางโดยใช้เมนูLayout → New Sheet Objects → Table Box.

อันดับแรกเราเลือกเฉพาะไฟล์ productSales ตารางซึ่งทำให้เรามีฟิลด์ - ProductID, ProductCategory และ SaleAmount ที่จะแสดง

ต่อไปเราเลือกไฟล์ ProductList ชุดข้อมูลซึ่งทำให้เรามีฟิลด์ ProductID และ ProductCategory

สุดท้ายเราเลือก All Tables ตัวเลือกและรับฟิลด์ที่มีอยู่ทั้งหมดจากตารางทั้งหมด

รายงานต่อไปนี้แสดงกล่องตารางทั้งหมดจากขั้นตอนที่กำหนดข้างต้น

ซ้าย Keep

การเก็บซ้ายจะคล้ายกับการรวมด้านซ้ายซึ่งจะเก็บแถวทั้งหมดจากตารางทางด้านซ้ายพร้อมทั้งชุดข้อมูลที่มีอยู่ในหน่วยความจำของ QlikView

ซ้ายเก็บสคริปต์

สคริปต์ต่อไปนี้ใช้เพื่อสร้างชุดข้อมูลผลลัพธ์ด้วยคำสั่ง left 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เราได้รับข้อมูลต่อไปนี้ในวัตถุแผ่นงาน

ขวา Keep

การเก็บขวาจะคล้ายกับการรวมด้านซ้ายซึ่งจะเก็บแถวทั้งหมดจากตารางทางด้านขวาพร้อมทั้งชุดข้อมูลที่มีอยู่ในหน่วยความจำของ QlikView

ขวาเก็บสคริปต์

สคริปต์ต่อไปนี้ใช้เพื่อสร้างชุดข้อมูลผลลัพธ์ด้วยคำสั่ง left 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เราได้รับข้อมูลต่อไปนี้ในวัตถุแผ่นงาน