[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]
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]
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]
參考