แชร์ผ่าน


คิวรี DAX

การรายงานไคลเอ็นต์ เช่น Power BI และ Excel จะดําเนินการคิวรี DAX เมื่อใดก็ตามที่มีการวางเขตข้อมูลบนรายงานหรือเมื่อมีการใช้ตัวกรอง โดยการใช้ SQL Server Management Studio (SSMS) ตัวสร้างรายงาน Power BI และเครื่องมือโอเพนซอร์สเช่น DAX Studio คุณสามารถสร้างและเรียกใช้คิวรี DAX ของคุณเองได้ คิวรี DAX จะแสดงผลลัพธ์เป็นตารางภายในเครื่องมือ ซึ่งช่วยให้คุณสามารถสร้างและทดสอบประสิทธิภาพของสูตร DAX ของคุณได้อย่างรวดเร็ว

ก่อนการเรียนรู้เกี่ยวกับคิวรี สิ่งสําคัญคือคุณต้องทําความเข้าใจอย่างที่สุดเกี่ยวกับพื้นฐาน DAX หากคุณยังไม่ได้ตรวจสอบให้แน่ใจว่าได้ตรวจสอบ ภาพรวม DAX แล้ว

คำสำคัญ

คิวรี DAX มีไวยากรณ์ง่ายๆ ที่ประกอบด้วยคําสําคัญที่จําเป็นเพียงคําเดียว EVALUATE และคําสําคัญตัวเลือกหลายรายการ: ORDER BY, START AT, DEFINE, MEASURE, VAR, TABLE และ COLUMN คําหลักแต่ละรายการจะกําหนดคําสั่งที่ใช้สําหรับระยะเวลาของคิวรี

ประเมิน (จําเป็น)

ในระดับพื้นฐานที่สุด คิวรี DAX คือ คําสั่ง EVALUATE ที่มีนิพจน์ตาราง จําเป็นต้องมีคําสั่ง EVALUATE อย่างน้อยหนึ่งรายการ อย่างไรก็ตามคิวรีสามารถประกอบด้วยคําสั่ง EVALUATE จํานวนหนึ่งใดก็ตาม

ไวยากรณ์ EVALUATE

EVALUATE <table>  

พารามิเตอร์ EVALUATE

เงื่อนไข คำนิยาม
ตาราง นิพจน์ตาราง

ตัวอย่างการประเมิน

EVALUATE
    'Internet Sales'

แสดงแถวและคอลัมน์ทั้งหมดจากตารางยอดขายทางอินเทอร์เน็ตเป็นตาราง

คําสั่ง DAX Evaluate

ORDER BY (ทางเลือก)

คําสําคัญ ORDER BY ที่เลือกได้จะกําหนดนิพจน์อย่างน้อยหนึ่งรายการที่ใช้ในการเรียงลําดับผลลัพธ์คิวรี นิพจน์ใด ๆ ที่สามารถประเมินสําหรับแต่ละแถวของผลลัพธ์ถูกต้อง

ไวยากรณ์ ORDER BY

EVALUATE <table>  
[ORDER BY {<expression> [{ASC | DESC}]}[, …]]  

พารามิเตอร์ ORDER BY

เงื่อนไข คำนิยาม
สีหน้า นิพจน์ DAX ใด ๆ ที่แสดงค่าสเกลาเดียว
ASC (ค่าเริ่มต้น) การเรียงลําดับจากน้อยไปหามาก
สูง สุด การเรียงลําดับจากมากไปหาน้อย

ตัวอย่าง ORDER BY

EVALUATE
    'Internet Sales'
    
ORDER BY
    'Internet Sales'[Order Date]

แสดงแถวและคอลัมน์ทั้งหมดจากตารางยอดขายทางอินเทอร์เน็ต โดยเรียงลําดับจากน้อยไปหามากตามวันที่สั่งซื้อ เป็นตาราง

ลําดับ DAX Evaluate ตามคําสั่ง

START AT (ทางเลือก)

คําสําคัญ START AT ที่เลือกได้ถูกใช้ภายในส่วนคําสั่ง ORDER BY ซึ่งจะกําหนดค่าที่ผลลัพธ์คิวรีเริ่มต้น

ไวยากรณ์ START AT

EVALUATE <table>  
[ORDER BY {<expression> [{ASC | DESC}]}[, …]  
[START AT {<value>|<parameter>} [, …]]]

พารามิเตอร์ START AT

เงื่อนไข คำนิยาม
ค่า ค่าคงที่ ไม่สามารถเป็นนิพจน์ได้
พารามิเตอร์ ชื่อของพารามิเตอร์ในคําสั่ง XMLA ขึ้นต้นด้วย @ อักขระ

เริ่มที่หมายเหตุ

อาร์กิวเมนต์ START AT มีความสัมพันธ์กันแบบหนึ่งต่อหนึ่งกับคอลัมน์ในส่วนคําสั่ง ORDER BY สามารถมีอาร์กิวเมนต์จํานวนมากได้ในส่วนคําสั่ง START AT ตามที่มีอยู่ในส่วนคําสั่ง ORDER BY แต่ไม่สามารถระบุได้มากกว่านี้ อาร์กิวเมนต์แรกใน START AT จะกําหนดค่าเริ่มต้นในคอลัมน์ 1 ของคอลัมน์ ORDER BY อาร์กิวเมนต์ที่สองใน START AT จะกําหนดค่าเริ่มต้นในคอลัมน์ 2 ของคอลัมน์ ORDER BY ภายในแถวที่ตรงกับค่าแรกสําหรับคอลัมน์ 1

ตัวอย่าง START AT

EVALUATE
    'Internet Sales'
    
ORDER BY
    'Internet Sales'[Sales Order Number]
START AT "SO7000"

แสดงแถวและคอลัมน์ทั้งหมดจากตารางยอดขายทางอินเทอร์เน็ต โดยเรียงลําดับจากน้อยไปหามากตามหมายเลขใบสั่งขาย โดยเริ่มต้นที่ SO7000

ลําดับ DAX Evaluate ตามใบแจ้งยอดหมายเลขใบสั่งขาย

DEFINE (ทางเลือก)

คําสําคัญ DEFINE ที่เลือกได้จะแนะนําข้อกําหนดของเอนทิตีจากการคํานวณอย่างน้อยหนึ่งรายการที่มีอยู่ในช่วงระยะเวลาของคิวรีเท่านั้น ข้อกําหนดอยู่ก่อนหน้าคําสั่ง EVALUATE และถูกต้องสําหรับคําสั่ง EVALUATE ทั้งหมดในคิวรี ข้อกําหนดอาจเป็นตัวแปร หน่วยวัด ตาราง1 และคอลัมน์1 ข้อกําหนดสามารถอ้างอิงถึงข้อกําหนดอื่น ๆ ที่ปรากฏก่อนหรือหลังข้อกําหนดปัจจุบัน จําเป็นต้องมีข้อกําหนดอย่างน้อยหนึ่งรายการถ้าคําสําคัญ DEFINE รวมอยู่ในคิวรี

กําหนดไวยากรณ์

[DEFINE 
    (
     (MEASURE <table name>[<measure name>] = <scalar expression>) | 
     (VAR <var name> = <table or scalar expression>) |
     (TABLE <table name> = <table expression>) | 
     (COLUMN <table name>[<column name>] = <scalar expression>) | 
    ) + 
]

(EVALUATE <table expression>) +

กําหนดพารามิเตอร์

เงื่อนไข คำนิยาม
Entity หน่วยวัด VAR ตารางที่ 1 หรือคอลัมน์1
ชื่อ ชื่อของหน่วยวัด ความแปรปรวน ตาราง หรือข้อกําหนดคอลัมน์ ไม่สามารถเป็นนิพจน์ได้ ชื่อไม่จําเป็นต้องไม่ซ้ํากัน ชื่อมีไว้สําหรับระยะเวลาของคิวรีเท่านั้น
สีหน้า นิพจน์ DAX ใด ๆ ที่แสดงตารางหรือค่าสเกลา นิพจน์สามารถใช้เอนทิตีที่กําหนดไว้ใด ๆ ถ้ามีความจําเป็นต้องแปลงนิพจน์สเกลาเป็นนิพจน์ตาราง ให้ตัดนิพจน์ภายในคอนสตรักเตอร์ตารางด้วยวงเล็บปีก {}กา หรือใช้ ROW() ฟังก์ชันเพื่อส่งกลับตารางแถวเดียว

[1] คําเตือน: ข้อกําหนดตารางและคอลัมน์ที่มีขอบเขตของคิวรีมีไว้สําหรับการใช้งานภายในเท่านั้น แม้ว่าคุณจะสามารถกําหนดนิพจน์ TABLE และ COLUMN สําหรับคิวรีได้โดยไม่มีข้อผิดพลาดทางไวยากรณ์ แต่อาจก่อให้เกิดข้อผิดพลาดรันไทม์และไม่แนะนํา

กําหนดหมายเหตุ

  • คิวรี DAX สามารถมีคําสั่ง EVALUATE ได้หลายรายการ แต่สามารถมีคําสั่ง DEFINE ได้เพียงคําสั่งเดียวเท่านั้น ข้อกําหนดในคําสั่ง DEFINE สามารถนําไปใช้กับคําสั่ง EVALUATE ในคิวรีได้

  • ต้องมีข้อกําหนดอย่างน้อยหนึ่งข้อกําหนดในคําสั่ง DEFINE

  • ข้อกําหนดหน่วยวัดสําหรับหน่วยวัดการแทนที่คิวรีของชื่อเดียวกัน แต่จะใช้ภายในคิวรีเท่านั้น ซึ่งจะไม่ส่งผลกระทบต่อหน่วยวัดแบบจําลอง

  • ชื่อ VAR มีข้อจํากัดที่ไม่ซ้ํากัน เมื่อต้องการเรียนรู้เพิ่มเติม ดู VAR - พารามิเตอร์

ตัวอย่าง DEFINE

DEFINE
    MEASURE 'Internet Sales'[Internet Total Sales] =
        SUM ( 'Internet Sales'[Sales Amount] )

EVALUATE
SUMMARIZECOLUMNS (
    'Date'[Calendar Year],
    TREATAS (
        {
            2013,
            2014
        },
        'Date'[Calendar Year]
    ),
    "Total Sales", [Internet Total Sales],
    "Combined Years Total Sales",
        CALCULATE (
            [Internet Total Sales],
            ALLSELECTED ( 'Date'[Calendar Year] )
        )
)
ORDER BY [Calendar Year]

ส่งกลับยอดขายทั้งหมดที่คํานวณสําหรับปี 2013 และ 2014 และรวมยอดขายทั้งหมดที่คํานวณสําหรับปี 2013 และ 2014 เป็นตาราง หน่วยวัดในคําสั่ง DEFINE นั่นคือ ยอดขายทั้งหมดทางอินเทอร์เน็ต จะใช้ในทั้งนิพจน์ยอดขายรวมและยอดขายทั้งหมดของปีรวม

DAX Evaluate พร้อมกําหนดหน่วยวัด

พารามิเตอร์ในคิวรี DAX

คําสั่งคิวรี DAX ที่กําหนดไว้อย่างดีสามารถเป็นพารามิเตอร์ได้ จากนั้นจะถูกใช้ซ้ําแล้วซ้ําอีก โดยเปลี่ยนเพียงค่าพารามิเตอร์เท่านั้น

วิธีการ วิธีปฏิบัติการ (XMLA) มี องค์ประกอบคอลเลกชัน องค์ประกอบพารามิเตอร์ (XMLA) ที่อนุญาตให้สามารถกําหนดพารามิเตอร์และกําหนดค่าได้ ภายในคอลเลกชัน แต่ละ องค์ประกอบขององค์ประกอบพารามิเตอร์ (XMLA) จะกําหนดชื่อของพารามิเตอร์และค่า

อ้างอิงพารามิเตอร์ XMLA โดยใส่คํานําหน้าชื่อของพารามิเตอร์ที่มี @ อักขระ ตําแหน่งใด ๆ ในไวยากรณ์ที่อนุญาตค่า คุณสามารถแทนที่ค่าได้ด้วยการเรียกพารามิเตอร์ พารามิเตอร์ XMLA ทั้งหมดถูกพิมพ์เป็นข้อความ

สำคัญ

พารามิเตอร์ที่กําหนดในส่วนพารามิเตอร์และไม่ได้ใช้ใน <องค์ประกอบ STATEMENT> จะสร้างการตอบสนองข้อผิดพลาดใน XMLA พารามิเตอร์ที่ใช้และไม่ได้กําหนดใน <องค์ประกอบ พารามิเตอร์> จะสร้างการตอบสนองข้อผิดพลาดใน XMLA

คําสั่ง DAX
SUMMARIZECOLUMNS
TREATAS
กรอง