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