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

来源:互联网 发布:知我药妆卖的是假货吗 编辑:程序博客网 时间:2024/04/29 18:41

查询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 ]