หัวข้อนี้จะอธิบายความแตกต่างระหว่างฟังก์ชันชุดเวลาและฟังก์ชันฟิลเตอร์ และอธิบายวิธีการใช้ฟังก์ชันฟิลเตอร์ ข้อมูลนี้นำไปใช้กับทั้งเวิร์กบุคและแผงข้อมูลแบบคลาสสิก
ฟังก์ชันชุดเวลาเทียบกับฟังก์ชันฟิลเตอร์
ฟังก์ชันชุดเวลา Ago
และ Todate
นำเสนอวิธีที่เรียบง่ายในการสร้างเมตริคเพื่อคำนวณ ปีก่อน, ต้นปีถึงปัจจุบัน
เป็นต้น วิธีนี้ใช้ได้ผลดีกับรายงานผู้ใช้ทางธุรกิจ อย่างไรก็ตาม ฟังก์ชันเหล่านี้สร้างการสืบค้นที่ซับซ้อนที่ส่งผลกระทบอย่างมีนัยสำคัญต่อประสิทธิภาพ นอกจากนี้ ทุกครั้งที่มีการใช้หนึ่งในฟังก์ชันเหล่านี้ในรายงาน ระบบจะสร้างการสืบค้นย่อยเพิ่มเติมโดยใช้ทรัพยากรมากขึ้นอีกบนฐานข้อมูล
ในแผงข้อมูลแบบคลาสสิก แทนที่จะใช้ฟังก์ชันชุดเวลา คุณมักจะได้รับผลลัพธ์เดียวกันได้จากการใช้เมตริกฐานที่มีฟังก์ชันฟิลเตอร์
เพื่อฟิลเตอร์ช่วงเวลาที่ถูกต้อง วิธีนี้อาจซับซ้อนเกินไปสำหรับรายงานผู้ใช้ทางธุรกิจ แต่ใช้ได้ผลดีเยี่ยมในแผงข้อมูลที่ฝ่าย IT กำหนดไว้ล่วงหน้า เมื่อใช้วิธีนี้ รหัส SQL แบบฟิสิคัลที่สร้างขึ้นจะมีความเรียบง่ายมากกว่าและมีประสิทธิภาพกว่ามาก รวมถึงไม่จำเป็นต้องใช้การสืบค้นย่อยเพิ่มเติมด้วย ซึ่งหมายความว่าการสืบค้น SQL จะรันเร็วขึ้นและใช้ทรัพยากรน้อยลงในฐานข้อมูล ช่วยลดการใช้งาน CPU และการเรียกอินพุต-เอาต์พุตของฐานข้อมูลโดยรวม
รูปต่อไปนี้จะแสดงตัวอย่างการสืบค้นแบบฟิสิคัลที่สร้างขึ้นเมื่อคุณใช้ทั้งเมตริคพื้นฐานและเมตริค Ago
ของเดือนในรายงานเดียวกัน ระบบจะสร้างการสืบค้นสองประเภท
รูปต่อไปนี้แสดงรหัส SQL ที่สร้างขึ้นสำหรับการสืบค้นเดียวเมื่อคุณใช้ฟังก์ชัน ฟิลเตอร์
แทน
ใช้ฟังก์ชันฟิลเตอร์ในแผงข้อมูลพร้อมกับพรอมต์
ในการนำไปใช้ส่วนใหญ่ แผงข้อมูลจะรวมพรอมต์อยู่แล้วเพื่อที่ผู้ใช้จะสามารถเลือกเดือนที่กำลังมองหาได้ ขั้นตอนแรกคือการระบุช่วงเวลาที่คุณต้องการฟิลเตอร์ตามการเลือกของผู้ใช้
ในตัวอย่างนี้ ไดเมนชันปฏิทินจะรวมคอลัมน์ Julian Period Number
เพราะจะช่วยให้การคำนวณง่ายขึ้น ซึ่งจะเป็นไปได้โดยไม่ใช้ Julian Period Number
เช่นกัน แต่ต้องใช้สูตรที่มีความซับซ้อนกว่ามากเพื่อคำนวณช่วงเวลาที่เลือก
Month
เพื่อเพิ่มตัวแปรการนำเสนอ (MonthSelected
)
Julian Period Number
ที่เกี่ยวข้อง และนำไปใส่ในอีกตัวแปรหนึ่ง (PeriodNumberSelected
) พรอมต์ที่สองนี้จะไม่แสดงให้ผู้ใช้เห็น แต่จะซ่อนอยู่ในแผงข้อมูล และค่าที่คำนวณจะขึ้นอยู่กับตัวแปร MonthSelected
โดยอัตโนมัติ
Julian Period
Month
และใช้ฟังก์ชันที่ฟิลเตอร์สูตรคอลัมน์โดยอิงจาก Julian Period Number
ตามที่จำเป็น ต่อไปนี้คือตัวอย่างบางส่วน:
Current Month: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"=@{PeriodNumberSelected}{80800})
Month Ago: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"=@{PeriodNumberSelected}{80800}-1)
Year Ago: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"=@{PeriodNumberSelected}{80800}-12)
Year to date: Filter("Revenue Metrics"."Revenue" using "Time"."Julian Month Number"<=@{PeriodNumberSelected}{80800} and “Time”.”Year”=@{YearSelected}{2019})
ใช้ฟังก์ชันฟิลเตอร์ในเวิร์กบุคพร้อมกับพารามิเตอร์
คุณสามารถใช้หลักการเดียวกันในเวิร์กบุค ตัวแปรพรอมต์และการนำเสนอจะแทนที่ด้วยฟิลเตอร์และพารามิเตอร์ของแผงข้อมูล
สร้างสามพารามิเตอร์: MonthSelected, PeriodNumberSelected และ YearSelected ระบบจะแสดงเฉพาะพารามิเตอร์ MonthSelected ในแคนวาสในฟิลเตอร์ของแผงข้อมูล
ค่าที่เป็นไปได้ของพารามิเตอร์ MonthSelected กำหนดโดยอิงจากการสืบค้น SQL แบบลอจิคัลที่เลือกทุกเดือน
สำหรับพารามิเตอร์ PeriodNumberSelected และ YearSelected ระบบจะไม่ป๊อปปูเลทค่าที่เป็นไปได้
.jpg
จะป๊อปปูเลทเพียงค่าเริ่มต้น พร้อมฟิลเตอร์การสืบค้นแบบลอจิคัลโดยอิงจากค่าของ MonthSelected
.jpg