共用方式為


MDX 查詢 - 基本查詢

適用於: SQL Server Analysis Services Azure Analysis Services Fabric/Power BI Premium

基本多維度表達式 (MDX) 查詢是 SELECT 語句,這是 MDX 中最常使用的查詢。 藉由瞭解 MDX SELECT 語句必須如何指定結果集、SELECT 語句的語法,以及如何使用 SELECT 語句建立簡單的查詢,您將深入瞭解如何使用 MDX 來查詢多維度數據。

指定結果集

在 MDX 中,SELECT 語句會指定結果集,其中包含從 Cube 傳回的多維度數據子集。 若要指定結果集,MDX 查詢必須包含下列資訊:

  • 您希望結果集包含的座標軸數目。 您可以在 MDX 查詢中指定最多 128 個座標軸。

  • 要包含在 MDX 查詢每個軸上的成員或 Tuple 集合。

  • 設定 MDX 查詢內容之 Cube 的名稱。

  • 要包含在交叉分析篩選器軸上的成員或 Tuple 集合。 如需交叉分析篩選器和查詢座標軸的詳細資訊,請參閱 使用查詢和交叉分析篩選器軸限制查詢 (MDX)

若要識別查詢軸、將查詢的 Cube 和交叉分析篩選器軸,MDX SELECT 語句會使用下列子句:

  • SELECT 子句,決定 MDX SELECT 語句的查詢軸。 如需在 SELECT 子句中建構查詢軸的詳細資訊,請參閱 指定查詢軸的內容

  • FROM 子句,決定要查詢哪個 Cube。 如需 FROM 子句的詳細資訊,請參閱 SELECT 語句 (MDX)

  • 選擇性 WHERE 子句,決定交叉分析篩選器軸上使用哪些成員或 Tuple 來限制傳回的數據。 如需在WHERE子句中建構交叉分析篩選器軸的詳細資訊,請參閱 指定交叉分析篩選器軸的內容

注意

如需 SELECT 語句之各種子句的詳細資訊,請參閱 SELECT 語句 (MDX)

SELECT 語句語法

下列語法顯示基本 SELECT 語句,其中包含 SELECT、FROM 和 WHERE 子句的使用:

[ WITH <SELECT WITH clause> [ , <SELECT WITH clause> ... ] ]   
SELECT [ * | ( <SELECT query axis clause>   
    [ , <SELECT query axis clause> ... ] ) ]  
FROM <SELECT subcube clause>   
[ <SELECT slicer axis clause> ]  
[ <SELECT cell property list clause> ]  

MDX SELECT 語句支持選擇性語法,例如WITH關鍵詞、使用 MDX 函數來建立匯出成員以包含在軸或交叉分析篩選器軸中,以及能夠傳回特定單元格屬性的值做為查詢的一部分。 如需 MDX SELECT 語句的詳細資訊,請參閱 SELECT 語句 (MDX)

比較 MDX SELECT 語句的語法與 SQL

MDX SELECT 語句的語法格式類似於 SQL 語法。 不過,有數個基本差異:

  • MDX 語法會以大括弧括住 Tuple 或成員來區分集合({ 和 } 個字元。)如需成員、元組和設定語法的詳細資訊,請參閱 使用成員、Tuple 和集合 (MDX)

  • MDX 查詢在 SELECT 語句中可以有 0、1、2 或最多 128 個查詢軸。 每個軸的行為方式完全相同,與 SQL 不同,其中查詢數據列和數據行的行為有顯著差異。

  • 如同 SQL 查詢,FROM 子句會將 MDX 查詢的資料來源命名為 。 不過,MDX FROM 子句僅限於單一 Cube。 其他 Cube 的資訊可以使用 LookupCube 函式,逐值擷取。

  • WHERE 子句描述 MDX 查詢中的交叉分析篩選器軸。 它的作用就像查詢中不可見的額外座標軸,切割結果集中單元格中顯示的值;不同於 SQL WHERE 子句,它不會直接影響查詢數據列軸上出現的內容。 SQL WHERE 子句的功能可透過其他 MDX 函式取得,例如 FILTER 函式。

SELECT 語句範例

下列範例顯示使用SELECT語句的基本 MDX 查詢。 此查詢會傳回一個結果集,其中包含西南銷售地區的 2002 和 2003 銷售和稅額。

SELECT  
    { [Measures].[Sales Amount],   
        [Measures].[Tax Amount] } ON COLUMNS,  
    { [Date].[Fiscal].[Fiscal Year].&[2002],   
        [Date].[Fiscal].[Fiscal Year].&[2003] } ON ROWS  
FROM [Adventure Works]  
WHERE ( [Sales Territory].[Southwest] )  

在此範例中,查詢會定義下列結果集資訊:

  • SELECT 子句會將查詢軸設定為量值維度的 Sales Amount 和 Tax Amount 成員,以及 Date 維度的 2002 和 2003 成員。

  • FROM 子句表示數據源是 Adventure Works Cube。

  • WHERE 子句會將交叉分析篩選器軸定義為 Sales Territory 維度的西南成員。

請注意,查詢範例也會使用 COLUMNS 和 ROWS 軸別名。 也可以使用這些座標軸的序數位置。 下列範例示範如何寫入 MDX 查詢,以使用每個座標軸的序數位置:

SELECT  
    { [Measures].[Sales Amount],   
        [Measures].[Tax Amount] } ON 0,  
    { [Date].[Fiscal].[Fiscal Year].&[2002],   
        [Date].[Fiscal].[Fiscal Year].&[2003] } ON 1  
FROM [Adventure Works]  
WHERE ( [Sales Territory].[Southwest] )  

如需更詳細的範例,請參閱 指定查詢軸的內容指定交叉分析篩選器軸的內容

另請參閱

MDX 中 重要概念
SELECT 語句 (MDX)