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เราได้รับข้อมูลต่อไปนี้ในวัตถุแผ่นงาน