日期:2014-05-18  浏览次数:20522 次

谁有MDX教程 共享些 谢谢
小弟正在做只能分析,需mdx语法方面资料,各位大哥大姐提供此方面资料

谢谢!!!!!

------解决方案--------------------
MDX语句整理

基本概念:
成员:属于维度,描述CUBE的维度
元组:来自CUBE的数据切片.成员向导
集合:由0,1,多个成员组成.代表范围,不代表值.

MDX语句基本格式:
WITH
MEMBER ……
…….
SET ……
…….
SELECT {……} ON COLUMNS,
{……} ON ROWS
FROM CUBENAME
WHERE (……)

维度描述:
[地理维度]:
所有地理维度 北京 S1
S2
上海 S3
S4
[措施维度]:
所有措施维度 措1 C1
C2
措2 C3
C4
[时间维度]:
2007 1月
2月
3月
4月

TABLE1
所有地理维度
1月

SELECT {[地理维度].[所有地理维度]} ON COLUMNS,
{[时间维度].[1月]} ON ROWS
FROM [CUBENAME]

TABLE2
S1
1月

SELECT {[地理维度].[S1]} ON COLUMNS,
{[时间维度].[1月]} ON ROWS
FROM [CUBENAME]

TALBE3
S1 S2 S3
1月

SELECT {[地理维度].[S1], [地理维度].[S2], [地理维度].[S3]} ON COLUMNS,
{[时间维度].[1月]} ON ROWS
FROM [CUBENAME]

TABLE4
上海
1月

SELECT {[地理维度].[上海]} ON COLUMNS,
{[时间维度].[1月]} ON ROWS
FROM [CUBENAME]

WITH MEMBER [地理维度].[AA] AS ‘SUM({S1,S2})’
SELECT {[地理维度].[AA]} ON COLUMNS,
{[时间维度].[1月]} ON ROWS
FROM [CUBENAME]

TABLE5
C3做切片
S1 S2
1月

SELECT {[地理维度].[S1],[地理维度].[S2]} ON COLUMNS,
{[时间维度].[1月]} ON ROWS
FROM [CUBENAME]
WHERE ([措施维度].[C3])

TABLE6
S1 S2
1月
3月

SELECT {[地理维度].[S1],[地理维度].[S2]} ON COLUMNS,
{[时间维度].[1月], [时间维度].[3月]} ON ROWS
FROM [CUBENAME]

TABLE7
S1 S2
1月 C1
3月 C1

SELECT {[地理维度].[S1],[地理维度].[S2]} ON COLUMNS,
{{[时间维度].[1月], [时间维度].[3月]}*{[措施维度].[C1]}} ON ROWS
FROM [CUBENAME]

SELECT {[地理维度].[S1],[地理维度].[S2]} ON COLUMNS,
{([时间维度].[1月], [措施维度].[C1]),( [时间维度].[3月], [措施维度].[C1])} ON ROWS
FROM [CUBENAME]

TABLE8
S1 S2
1月 C1
1月 C2
3月 C1
3月 C2

SELECT {[地理维度].[S1],[地理维度].[S2]} ON COLUMNS,
{{[时间维度].[1月], [时间维度].[3月]}*{[措施维度].[C1], [措施维度].[C2]}} ON ROWS
FROM [CUBENAME]

TABLE9
M表示度量值
S1 S2
M1 M2 M1 M2
1月 C1
C2
3月 C1
C2

SELECT {{[地理维度].[S1],[地理维度].[S2]}*{[MEASURES].[M1], [MEASURES].[M2]}} ON COLUMNS,
{{[时间维度].[1月], [时间维度].[3月]}*{[措施维度].[C1], [措施维度].[C2]}} ON ROWS
FROM [CUBENAME]

TABLE10
M1 M2
1月 北京 C1
C2
上海 C1
C2
3月 北京 C1
C2
上海 C1
C2

SELECT {[MEASURES].[M1],[MEASURES].[M2]} ON COLUMNS,
{{[时间维度].[1月],[时间维度].[3月]}*{[地理维度].[北京],[地理维度].[上海]}*{[措施维度].[C1],[措施维度].[C2]}} ON ROWS
RROM [CUBENAME]

TABLE11
S1 S2 S2-S1
1月
3月

WITH
MEMBER [地理维度].[AA] AS ‘[地理维度].[S2]-[地理维度].[S1]’
SELECT {[地理维度].[S1],[地理维度].[S2],[地理维度].[AA]} ON COLUMNS,
{[时间维度].[1月],[时间维度].[3月]} ON ROWS
FROM [CUBENAME]

TABLE12
S1 S2
1月
3月

WITH
SET [SETA] AS ‘{[时间维度].[1月],[时间维度].[3月]}’
SELECT {[地理维度].[S1],[地理维度].[S2]} ON COLUMNS,
{[SETA]} ON ROWS
FROM [CUBENAME]

TABLE13
S1 S2
1月 100 102
3月 160 156

WITH
MEMBER [MEASURES].[AA] AS ‘IIF(MEASURES.M1> 156,1,0)’
SELECT {[地理维度].[S1],[地理维度].[S2]} ON COLUMNS,
{[SETA]} ON ROWS
FROM [CUBENAME]
WHRER ([MEASURES].[AA])

IIF(MEASURES.M1>