ใช้พารามิเตอร์แบบเรียงซ้อนในรายงานที่มีการแบ่งหน้า
บทความนี้กําหนดเป้าหมายคุณในฐานะผู้สร้างรายงานที่ออกแบบ Power BI รายงานที่มีการแบ่งหน้า ซึ่งมีสถานการณ์สําหรับพารามิเตอร์การเรียงการออกแบบ พารามิเตอร์การเรียงคือพารามิเตอร์รายงานที่มีการขึ้นต่อกัน เมื่อผู้ใช้รายงานเลือกค่าพารามิเตอร์ (หรือค่า) มันถูกใช้เพื่อตั้งค่าที่พร้อมใช้งานสําหรับพารามิเตอร์อื่น
โน้ต
บทนําสู่พารามิเตอร์การเรียงและวิธีการกําหนดค่าไม่ได้ครอบคลุมในบทความนี้ ถ้าคุณไม่คุ้นเคยทั้งหมดกับพารามิเตอร์การเรียง เราขอแนะนําให้คุณอ่านก่อน เพิ่มพารามิเตอร์การเรียงไปยังรายงานในตัวสร้างรายงาน Power BI
สถานการณ์การออกแบบ
มีสถานการณ์การออกแบบสองสถานการณ์สําหรับการใช้พารามิเตอร์การเรียง ซึ่งสามารถใช้เพื่อ:
- ตัวกรอง หน่วยข้อมูลขนาดใหญ่
- รายการ ที่เกี่ยวข้อง
รายการ
ฐานข้อมูลตัวอย่าง
ตัวอย่างที่แสดงในบทความนี้จะขึ้นอยู่กับฐานข้อมูล Azure SQL การดําเนินการขายของเรกคอร์ดฐานข้อมูล และประกอบด้วยตารางต่าง ๆ ที่จัดเก็บตัวแทนจําหน่าย ผลิตภัณฑ์ และใบสั่งขาย
ตารางที่มีชื่อ Reseller
จัดเก็บหนึ่งระเบียนสําหรับแต่ละผู้จําหน่าย และประกอบด้วยระเบียนจํานวนมากหลายพันรายการ ตาราง Reseller
มีคอลัมน์เหล่านี้:
- โค้ดตัวแทนจําหน่าย (จํานวนเต็ม)
- ResellerName
- Country-Region
- State-Province
- เมือง
- รหัสไปรษณีย์
มีตารางที่ชื่อว่า Sales
ด้วย ซึ่งจัดเก็บบันทึกคําสั่งขายและมีความสัมพันธ์หลักของต่างชาติไปยังตาราง Reseller
บนคอลัมน์ ResellerCode
ตัวอย่างข้อกําหนด
มีข้อกําหนดในการพัฒนารายงานโปรไฟล์ตัวแทนจําหน่าย ต้องออกแบบรายงานเพื่อแสดงข้อมูลสําหรับผู้จําหน่ายรายเดียว มันไม่เหมาะสมที่จะมีผู้ใช้รายงานเข้าสู่โค้ดตัวแทนจําหน่าย เช่นเดียวกับที่นานๆ ครั้งจะบันทึก
กรองกลุ่มใหญ่ของรายการ
มาดูสามตัวอย่างเพื่อช่วยคุณจํากัดกลุ่มใหญ่ของรายการที่มีอยู่ เช่น ตัวแทนจําหน่าย คือ:
กรองตามคอลัมน์ที่เกี่ยวข้อง
ในตัวอย่างนี้ ผู้ใช้รายงานโต้ตอบกับห้าพารามิเตอร์รายงาน ต้องเลือกประเทศ-ภูมิภาค รัฐ-จังหวัด เมือง และรหัสไปรษณีย์ พารามิเตอร์สุดท้ายแล้วแสดงรายการตัวแทนจําหน่ายที่อยู่ในตําแหน่งที่ตั้งทางภูมิศาสตร์
นี่คือวิธีที่คุณสามารถพัฒนาพารามิเตอร์การเรียง:
สร้างห้าพารามิเตอร์รายงานที่ถูกสั่งในลําดับที่ถูกต้อง
สร้าง CountryRegion ชุดข้อมูลที่รับข้อมูลมาจากค่าประเทศ-ภูมิภาคที่แตกต่างกัน โดยใช้คําสั่งคําถามดังต่อไปนี้:
SELECT DISTINCT [Country-Region] FROM [Reseller] ORDER BY [Country-Region]
สร้าง StateProvince ชุดข้อมูลที่รับข้อมูลค่ารัฐ-จังหวัดที่แตกต่างกันสําหรับประเทศ-ภูมิภาคที่เลือก โดยใช้คําสั่งคิวรีต่อไปนี้:
SELECT DISTINCT [State-Province] FROM [Reseller] WHERE [Country-Region] = @CountryRegion ORDER BY [State-Province]
สร้างชุดข้อมูล เมือง
ที่รับข้อมูลค่าเมืองที่แตกต่างกันสําหรับประเทศ-ภูมิภาคและรัฐ-จังหวัดที่เลือก โดยใช้คําสั่งคิวรีต่อไปนี้: SELECT DISTINCT [City] FROM [Reseller] WHERE [Country-Region] = @CountryRegion AND [State-Province] = @StateProvince ORDER BY [City]
ดําเนินการรูปแบบนี้ต่อเพื่อสร้างชุดข้อมูล รหัสไปรษณีย์
สร้างผู้จําหน่าย ชุดข้อมูลเพื่อเรียกใช้ตัวแทนจําหน่ายทั้งหมดสําหรับค่าทางภูมิศาสตร์ที่เลือก โดยใช้คําสั่งคิวรีต่อไปนี้:
SELECT [ResellerCode], [ResellerName] FROM [Reseller] WHERE [Country-Region] = @CountryRegion AND [State-Province] = @StateProvince AND [City] = @City AND [PostalCode] = @PostalCode ORDER BY [ResellerName]
สําหรับแต่ละชุดข้อมูลยกเว้นชุดแรก แมปพารามิเตอร์คิวรีไปยังพารามิเตอร์รายงานที่สอดคล้องกัน
โน้ต
สามารถฝังพารามิเตอร์คิวรีทั้งหมด (นําหน้าด้วยสัญลักษณ์ @) ที่แสดงในตัวอย่างเหล่านี้ได้ภายในคําสั่ง SELECT
หรือถูกส่งผ่านไปยังขั้นตอนการจัดเก็บ
โดยทั่วไปขั้นตอนการจัดเก็บคือวิธีการออกแบบที่ดีกว่า เนื่องจากแผนคิวรีของพวกเขาถูกแคชสําหรับการดําเนินการที่รวดเร็วและช่วยให้คุณพัฒนาตรรกะที่ซับซ้อนมากขึ้นเมื่อจําเป็น อย่างไรก็ตาม ก็ไม่ได้รับการสนับสนุนสําหรับแหล่งข้อมูลเกตเวย์เชิงสัมพันธ์ซึ่งหมายความว่า SQL Server Oracle และ Teradata
สุดท้ายแล้ว คุณควรแน่ใจว่าดัชนีที่เหมาะสมมีอยู่เพื่อสนับสนุนการเรียกข้อมูลที่มีประสิทธิภาพ มิฉะนั้น พารามิเตอร์รายงานของคุณสามารถเติมข้อมูลช้าและฐานข้อมูลจะเป็นภาระหนักเกินไป สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการทําดัชนี SQL Server ให้ดู คู่มือสถาปัตยกรรมและการออกแบบ SQL Server Index
กรองตามคอลัมน์การจัดกลุ่ม
ในตัวอย่างนี้ ผู้ใช้รายงานโต้ตอบกับพารามิเตอร์รายงานเพื่อเลือกตัวอักษรตัวแรกของผู้จําหน่าย พารามิเตอร์ตัวที่สองได้แสดงรายการตัวแทนจําหน่ายเมื่อชื่อเริ่มต้นด้วยตัวอักษรที่เลือก
นี่คือวิธีที่คุณสามารถพัฒนาพารามิเตอร์การเรียง:
สร้าง กลุ่มรายงาน
และ ตัวแทนจําหน่าย พารามิเตอร์รายงานตามลําดับที่ถูกต้องสร้างกลุ่มรายงาน ชุดข้อมูลเพื่อดึงตัวอักษรแรกที่ใช้โดยผู้จําหน่ายทั้งหมดโดยใช้คําสั่งคําถามต่อไปนี้:
SELECT DISTINCT LEFT([ResellerName], 1) AS [ReportGroup] FROM [Reseller] ORDER BY [ReportGroup]
สร้างผู้จําหน่าย ชุดข้อมูลเพื่อเรียกดูตัวแทนจําหน่ายทั้งหมดที่เริ่มต้นด้วยตัวอักษรที่เลือก โดยใช้คําสั่งคําถามต่อไปนี้:
SELECT [ResellerCode], [ResellerName] FROM [Reseller] WHERE LEFT([ResellerName], 1) = @ReportGroup ORDER BY [ResellerName]
แมปพารามิเตอร์คิวรีของ ตัวแทนจําหน่าย ชุดข้อมูลไปยังพารามิเตอร์รายงานที่สอดคล้องกัน
มีประสิทธิภาพมากกว่าเมื่อเพิ่มคอลัมน์การจัดกลุ่มไปยังตาราง Reseller
เมื่อยังคงมีอยู่และทําดัชนีจะมอบผลลัพธ์ที่ดีที่สุด สําหรับข้อมูลเพิ่มเติม โปรดดู ระบุคอลัมน์จากการคํานวณในตาราง
ALTER TABLE [Reseller]
ADD [ReportGroup] AS LEFT([ResellerName], 1) PERSISTED
เทคนิคนี้สามารถส่งมอบศักยภาพได้มากยิ่งขึ้น พิจารณาสคริปต์ต่อไปนี้ที่เพิ่มคอลัมน์ที่จัดกลุ่มใหม่เพื่อกรองตัวแทนจําหน่ายโดย ตัวอักษรที่กําหนดไว้ล่วงหน้า นอกจากนี้ยังสร้างดัชนีเพื่อดึงข้อมูลที่จําเป็นโดยพารามิเตอร์รายงานอย่างมีประสิทธิภาพ
ALTER TABLE [Reseller]
ADD [ReportGroup2] AS CASE
WHEN [ResellerName] LIKE '[A-C]%' THEN 'A-C'
WHEN [ResellerName] LIKE '[D-H]%' THEN 'D-H'
WHEN [ResellerName] LIKE '[I-M]%' THEN 'I-M'
WHEN [ResellerName] LIKE '[N-S]%' THEN 'N-S'
WHEN [ResellerName] LIKE '[T-Z]%' THEN 'T-Z'
ELSE '[Other]'
END PERSISTED
GO
CREATE NONCLUSTERED INDEX [Reseller_ReportGroup2]
ON [Reseller] ([ReportGroup2]) INCLUDE ([ResellerCode], [ResellerName])
GO
กรองตามรูปแบบการค้นหา
ในตัวอย่างนี้ ผู้ใช้รายงานโต้ตอบกับพารามิเตอร์รายงานเพื่อป้อนรูปแบบการค้นหา พารามิเตอร์ตัวที่สองได้แสดงรายการตัวแทนจําหน่ายเมื่อชื่อมีรูปแบบ
นี่คือวิธีที่คุณสามารถพัฒนาพารามิเตอร์การเรียง:
สร้าง ค้นหา
และผู้จําหน่าย พารามิเตอร์รายงานตามลําดับที่ถูกต้อง สร้าง ตัวแทนจําหน่าย ชุดข้อมูลเพื่อเรียกใช้ตัวแทนจําหน่ายทั้งหมดที่ประกอบด้วยข้อความค้นหา โดยใช้คําสั่งคําถามต่อไปนี้:
SELECT [ResellerCode], [ResellerName] FROM [Reseller] WHERE [ResellerName] LIKE '%' + @Search + '%' ORDER BY [ResellerName]
แมปพารามิเตอร์คิวรีของ ตัวแทนจําหน่าย ชุดข้อมูลไปยังพารามิเตอร์รายงานที่สอดคล้องกัน
ปลาย
คุณสามารถปรับปรุงการออกแบบนี้เพื่อให้สามารถควบคุมผู้ใช้รายงานของคุณได้มากขึ้น ซึ่งช่วยให้พวกเขากําหนดค่าการจับคู่รูปแบบของตนเอง ตัวอย่างเช่น ค่าการค้นหา "%สีแดง " จะกรองให้กับตัวแทนจําหน่ายที่มีชื่อที่ เริ่มต้น ด้วยอักขระ "สีแดง"
สําหรับข้อมูลเพิ่มเติม โปรดดู LIKE (Transact-SQL)
นี่คือวิธีที่คุณสามารถให้ผู้ใช้รายงานกําหนดรูปแบบของตนเอง
WHERE
[ResellerName] LIKE @Search
อย่างไรก็ตาม ผู้เชี่ยวชาญที่ไม่ใช่ฐานข้อมูลจํานวนมากไม่ทราบเกี่ยวกับเปอร์เซ็นต์ (%) อักขระตัวแทน แต่พวกเขาจะคุ้นเคยกับอักขระเครื่องหมาย (*) โดยการปรับเปลี่ยนส่วนคําสั่ง WHERE
คุณสามารถอนุญาตให้พวกเขาใช้อักขระนี้ได้
WHERE
[ResellerName] LIKE SUBSTITUTE(@Search, '%', '*')
รายการที่เกี่ยวข้องปัจจุบัน
ในสถานการณ์นี้ คุณสามารถใช้ข้อมูลจริงเพื่อจํากัดค่าที่มีอยู่ได้ ผู้ใช้รายงานจะแสดงด้วยรายการที่มีการบันทึกกิจกรรม
ในตัวอย่างนี้ ผู้ใช้รายงานโต้ตอบกับสามพารามิเตอร์รายงาน สองชุดแรกที่ตั้งค่าช่วงวันที่ของวันที่การสั่งการขาย พารามิเตอร์ที่สามแล้วแสดงรายการตัวแทนจําหน่ายที่มีการสร้างคําสั่งซื้อในระหว่างช่วงเวลานั้น
นี่คือวิธีที่คุณสามารถพัฒนาพารามิเตอร์การเรียง:
สร้าง
OrderDateStart OrderDateEnd และผู้จําหน่ายพารามิเตอร์รายงานตามลําดับที่ถูกต้อง สร้างผู้จําหน่าย ชุดข้อมูลเพื่อเรียกดูตัวแทนจําหน่ายทั้งหมดที่สร้างคําสั่งซื้อในช่วงเวลาวันที่โดยใช้คําสั่งคิวรีต่อไปนี้:
SELECT DISTINCT [r].[ResellerCode], [r].[ResellerName] FROM [Reseller] AS [r] INNER JOIN [Sales] AS [s] ON [s].[ResellerCode] = [r].[ResellerCode] WHERE [s].[OrderDate] >= @OrderDateStart AND [s].[OrderDate] < DATEADD(DAY, 1, @OrderDateEnd) ORDER BY [r].[ResellerName]
คำ แนะ นำ
เราขอแนะนําให้คุณออกแบบรายงานของคุณด้วยพารามิเตอร์การเรียง เมื่อใดก็ตามที่เป็นไปได้ เนื่องจากพวกเขา:
- มอบประสบการณ์ใช้งานที่ใช้งานง่ายและเป็นประโยชน์สําหรับผู้ใช้รายงานของคุณ
- มีประสิทธิภาพเนื่องจากพวกเขาดึงชุดที่มีขนาดเล็กกว่าของค่าที่มีอยู่
ตรวจสอบให้แน่ใจว่าได้ปรับแหล่งข้อมูลของคุณให้เหมาะสมโดย:
- การใช้ขั้นตอนที่จัดเก็บไว้ เมื่อใดก็ตามที่เป็นไปได้
- การเพิ่มดัชนีที่เหมาะสมสําหรับการดึงข้อมูลที่มีประสิทธิภาพ
- ค่าคอลัมน์ที่ปรากฏขึ้น—และแม้แต่แถว—เพื่อหลีกเลี่ยงการประเมินเวลาคิวรีที่มีราคาแพง
เนื้อหาที่เกี่ยวข้อง
สําหรับข้อมูลเพิ่มเติมที่เกี่ยวข้องกับบทความนี้ โปรดดูทรัพยากรต่อไปนี้:
- พารามิเตอร์รายงานในตัวสร้างรายงานใน Power BI
- เพิ่มพารามิเตอร์แบบเรียงซ้อนไปยังรายงาน (ตัวสร้างรายงาน)
- คำ ถาม ลองถาม ชุมชน Fabric
- คำ แนะ นำ มีส่วนช่วยปรับปรุง ผ้า