[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])

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])

 

 

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])

 

 

 

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 ]

 

 

 

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 ]

 

 

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 ]

 

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 ]

 

 

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 ]

 


 

參考

MDX 語言參考(MDX)

MDX 的關鍵概念(MDX)

MDX 查詢基礎觀念(MDX)

MDX 函數參考(MDX)


轉自: http://www.dotblogs.com.tw/ricochen/archive/2012/04/13/71479.aspx

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 ]

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章