查詢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 ]
參考
轉自: 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 ]