MDX学习——初始MDX

认识MDX

1, AS 2005 CUBE结构

在认识MDX之前先来认识下AS 2005 CUBE结构。如下图,Cube的结构里有维度和量值,而维度下有阶层(属性),阶层下有层级,每个层级有许多成员。

2,MDX

多维运算式(MultiDimensional eXpressions,MDX),是以陈述式为基础的指令码语言,用来在SSAS中定义、使用和截取多维体内的数据。

3,MDX多维查询语法

MDX语法

WITH

    [<导出成员>]

    [<自定义命名>]

    [<单元格计>]

SELECT <Tuple> ON <>

     [,<Tuple> ON <>…]

FROM [<Cube 名称>]

WHERE [<Slicer 切片>]

导出成员语法

MEMBER <成员>

AS '<计算公式>'

    [,SOLVE_ORDER = <解决>]

    [,<cell_property> = <value_expression>]

    [,FORMAT_STRING = <显示格式>]

命名集语法

SET <集合名称> AS '<成员集合>'

单元格计算语法

CELL CALCULATION <单元格名称>

FOR '(<calculation_subcube>)'

AS '<calculation_formula>'

    [,<calculation_property_list>]

 

1)新增导出成员示例

With

--新增导出成员

Member [Measures].[达成率] as

    '[Measures].[Sales Amount]/[Measures].[Sales Amount Quota]'

,Format_string='Percent' --显示百分比

--新增导出成员

Member [Measures].[去年同期达 ¦¨] as

    '(ParallelPeriod([Date].[Calendar].[Calendar Year]),[Measures].[达成率])'

,Format_string='Percent' --显示百分比

Select {[Measures].[Sales Amount]

        ,[Measures].[Sales Amount Quota]

        ,[Measures].[达成率]

        ,[Measures].[去年同期达成率]} on 0,

{[Sales Territory].[Sales Territory Country].members} on 1

From [Adventure Works]

Where [Date].[Calendar].[Calendar Year].&[2004];

 

2)新增命名集示例

With

--自订命名 产品名称ML的所有产品

Set ML as

    filter([Product].[Product].[Product].Members,

    mid([Product].[Product].Currentmember.name,1,2)='ML')

Select {[Measures].[Sales Amount]} on 0,

     non Empty --Null显示,注释测试

     {ML} on 1

From [Adventure Works];

 

3)单元个计算示例

With

    CELL CALCULATION [CELLS]

    FOR '{([Product].[Category].[Bikes],

        [Measures].[Sales Amount])}'

    AS '1'

Select

    {[Measures].[Sales Amount],[Measures].[Order Quantity]} on 0,

    {[Product].[Category].members} on 1

From [Adventure Works]

posted @   rangeliu  阅读(1059)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示