惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

人人都是产品经理
人人都是产品经理
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
月光博客
月光博客
雷峰网
雷峰网
Google DeepMind News
Google DeepMind News
Y
Y Combinator Blog
Microsoft Security Blog
Microsoft Security Blog
M
MIT News - Artificial intelligence
WordPress大学
WordPress大学
MongoDB | Blog
MongoDB | Blog
V
V2EX
博客园 - 【当耐特】
GbyAI
GbyAI
Stack Overflow Blog
Stack Overflow Blog
I
InfoQ
Martin Fowler
Martin Fowler
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Hugging Face - Blog
Hugging Face - Blog
B
Blog
V
Visual Studio Blog
D
DataBreaches.Net
C
Check Point Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
F
Fortinet All Blogs

博客园 - rangeliu

批判下微软的sql面试题 SQL Server 报表系统导出txt格式方法 Reporting Service报表纵向单元格合并 SSAS中命名集(SET)的使用 返回指定成员所有下级成员的MDX语句 [收藏]Oracle 性能优化 [收藏]使用XML技術實現OWC對數據庫的展示 十六進制的字符串轉換為double類型 [收藏]递归算出两个数字之间所有数字之和 [收藏]String与string的区别 [收藏]about协议的妙用 [收藏]中英文颜色对照表 [收藏]C# WinForm程序如何与JS交互 [收藏]在C#程序中使用系统热键 [转载]动态调用WebService(C#) [转载] .NET脏字过滤算法 [转载]使用Response.Filter过滤非法词汇 [转载]asp.net面试集合 [转载]WEB开发碰到的问题及经验十八则
MDX学习——初始MDX
rangeliu · 2009-06-23 · via 博客园 - rangeliu

认识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]