[SQL SERVER][SSAS] Cube 基本查詢

[SQL SERVER][SSAS] Cube 基本查詢

查詢 Cube 中相關資料需使用多維度運算式( MDX ),

這篇自己紀錄 Select , From ,Where 相關基本用法。

 

 

1.查詢產品大小介於42-46 CM顏色銷售和稅額彙總資料並移除空資料

Select
    { [Measures].[Sales Amount], 
        [Measures].[Tax Amt]} on columns, 
    non empty --從資料集內移除任何資料行中沒有資料的所有資料列    
    { [Color].ALLMEMBERS } on rows
From [Adventure Works DW Cube]
where ([Size Range].[42-46 CM])

 

 

image

 

2.Top and bottomcount操作(取前3筆和最後3筆)

Select
    { [Measures].[Sales Amount], 
        [Measures].[Tax Amt]} on columns, 
    non empty --從資料集內移除任何資料行中沒有資料的所有資料列    
    TopCount([Color].ALLMEMBERS,3) on rows --利用 topcount function
From [Adventure Works DW Cube]
where ([Size Range].[42-46 CM])

 

 

image

 


	
Select
    { [Measures].[Sales Amount], 
        [Measures].[Tax Amt]} on columns, 
    non empty --從資料集內移除任何資料行中沒有資料的所有資料列    
    bottomcount([Color].ALLMEMBERS,3) on rows --利用 bottomcount function
From [Adventure Works DW Cube]
where ([Size Range].[42-46 CM])

 

 

image

 

3.1Like 操作 (%A%)

WITH
SET ModelName
AS
FILTER(
      [Model Name].CHILDREN,
      Instr([Model Name].CURRENTMEMBER.Name,'tire')>=1
      )--利用 Filter Function 找包含tire
Select
    { [Measures].[Sales Amount], 
        [Measures].[Tax Amt]} on columns, 
    non empty --從資料集內移除任何資料行中沒有資料的所有資料列 
    ModelName on rows  
From [Adventure Works DW Cube]

 

 

image

 

3.2 Like A%

WITH
SET ModelName
AS
FILTER(
      [Model Name].CHILDREN,
      left([Model Name].CURRENTMEMBER.Name,1)='L'
      )--利用 Filter and left Function 找 L 開頭
Select
    { [Measures].[Sales Amount], 
        [Measures].[Tax Amt]} on columns, 
    non empty --從資料集內移除任何資料行中沒有資料的所有資料列 
    ModelName on rows  
From [Adventure Works DW Cube]

 

 

image

 

3.2 Like %A

WITH
SET ModelName
AS
FILTER(
      [Model Name].CHILDREN,
      right([Model Name].CURRENTMEMBER.Name,1)='e'
      )--利用 Filter and right Function 找 e 結尾
Select
    { [Measures].[Sales Amount], 
        [Measures].[Tax Amt]} on columns, 
    non empty --從資料集內移除任何資料行中沒有資料的所有資料列 
    ModelName on rows  
From [Adventure Works DW Cube]

 

 

image

 

4.格式化字串

WITH 
MEMBER [Measures].[TotalCost] AS '([Measures].[Unit Price] * [Measures].[Sales Amount])',
FORMAT_STRING = "$#,###.00"--格式化總價
Select
    { [Measures].[Sales Amount], 
        [Measures].[Tax Amt],[Measures].[TotalCost]} on columns, 
    non empty --從資料集內移除任何資料行中沒有資料的所有資料列 
     {[Model Name].ALLMEMBERS} on rows    
From [Adventure Works DW Cube]

 

 

image

 

5.  Not in and In

Select
    { [Measures].[Sales Amount], 
        [Measures].[Tax Amt]} on columns, 
    non empty --從資料集內移除任何資料行中沒有資料的所有資料列 
    Except --利用 except function 排除Bike Wash,Cycling Cap 
      ([Model Name].Children ,
         {[Model Name].[Bike Wash],[Model Name].[Cycling Cap]}
      ) ON ROWS  
From [Adventure Works DW Cube]

 

 

image

 

Select
    { [Measures].[Sales Amount], 
        [Measures].[Tax Amt]} on columns, 
    non empty --從資料集內移除任何資料行中沒有資料的所有資料列     
    {[Model Name].[ALL],[Model Name].[Classic Vest]}   ON ROWS  
From [Adventure Works DW Cube]

 

 

image

 

參考

MDX 語言參考 (MDX)

MDX 的關鍵概念 (MDX)

MDX 查詢基礎觀念 (MDX)

MDX 函數參考 (MDX)