MDX 历史累计写法?谢谢!

bzlj 2010-11-17 04:17:35
selec NON EMPTY { [Measures].[完成产值]} ON COLUMNS,
NON EMPTY {filter( ([工程信息].[工程号].[工程号].ALLMEMBERS * [工程信息].[工程名称].[工程名称].ALLMEMBERS ), [Measures].[完成产值] > 0) } DIMENSION
PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS
FROM ( SELECT ( [时间].[年-月-日].[日期].&[2009-01-01T00:00:00] : [时间].[年-月-日].[日期].&[2009-01-31T00:00:00] ) ON COLUMNS
FROM [产值分析])


比如我这么个MDX,其中 [时间].[年-月-日].[日期].&[2009-01-01T00:00:00] 这两个是参数,我想得到 2009-01-01前的历史累计,怎么处理呢?

我主要是用report service 在做报表
...全文
335 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Edward_Johns 2010-11-25
  • 打赏
  • 举报
回复
with member [Measures].[本期完成产值] as 'Aggregate([时间].[年-月-日].[日期].&[2009-01-01T00:00:00] : [时间].[年-月-日].[日期].&[2009-01-31T00:00:00], [Measures].[完成产值])' member [Measures].[历史累计完成产值] as 'Aggregate([时间].[年-月-日].[日期].&[2009-01-01T00:00:00] : [时间].[年-月-日].[日期].&[2009-02-28T00:00:00], [Measures].[完成产值])' 
selec NON EMPTY { [Measures].[本期完成产值], [Measures].[历史累计完成产值]} ON COLUMNS,
NON EMPTY {filter( ([工程信息].[工程号].[工程号].ALLMEMBERS * [工程信息].[工程名称].[工程名称].ALLMEMBERS ), [Measures].[本期完成产值] > 0) } DIMENSION
PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS
FROM [产值分析])


本期完成产值:1月份
历史累计完成产值:1月份到2月份(1月1号到2月28号)
Me_online 2010-11-25
  • 打赏
  • 举报
回复
你可以参考这篇文章:http://www.bridata.ca/blog/?p=897
xinlin910 2010-11-24
  • 打赏
  • 举报
回复
你可以设置一个时间参数
fpzgm 2010-11-18
  • 打赏
  • 举报
回复
你还是ssrs连到sql server吧,那样可以直接写sql语句,比较方便

select t1.*,t2.历史累计完成产值 from 
(select 工程号,sum(完成产值) 本期完成产值 from tb where time between @starttime and @endtime) t1
left join
(select 工程号,sum(完成产值) 历史累计完成产值 from tb where time<@starttime) t2
on t1.工程号=t2.工程号
bzlj 2010-11-17
  • 打赏
  • 举报
回复
我可能没说明白我的意思,其实这个跟表结构无关了.
我有3张表,一张时间维度,一张完成产值,一张工程信息表.完成产值这张表记录了每个工程没月的完成产值情况(比如就一个 工程信息,完成时间,完成产值 三个字段).
我上面的MDX统计的是2009年1月各个工程的完成产值,但我同时想再统计各个工程在2009年1月前完成的历史累计产值,这个怎么写呢?并且选择显示那个时间段这个是一个外部参数.比如用户可能选择显示2009年1月到2月的完成产值.

选择时间:从 XX年XX月 到 XX年XX月
工程号 本期完成产值 历史累计完成产值
A工程 500 1000

用SQL很好写了,但MDX遇到这种怎么处理呢,因为并不是本年累计什么的,主要是带一个不确定的参数
fpzgm 2010-11-17
  • 打赏
  • 举报
回复
不知道你想怎么个显示?
本年度累计可以在ssas里用periodsToDate函数,不一定要写复杂的mdx语句
dawugui 2010-11-17
  • 打赏
  • 举报
回复
最好给出完整的表结构,测试数据,计算方法和正确结果.否则耽搁的是你宝贵的时间。
如果有多表,表之间如何关联?


发帖注意事项
http://topic.csdn.net/u/20091130/21/fb718680-98ff-4afb-98d8-cff2f8293ed5.html?24281
MDX 中的重要概念 使用成员、元组和集 (MDX) MDX 语法元素 标识符 表达式 使用多维数据集表达式和子多维数据集表达式 使用维度表达式 使用成员表达式 使用元组表达式 使用集表达式 使用标量表达式 使用空值 运算符(MDX 语法) 算术运算符 位运算符 比较运算符 串联运算符 集运算符 一元运算符 赋值运算符 函数(MDX 语法) 使用字符串函数 使用数学函数 使用逻辑函数 使用成员函数 使用元组函数 使用集函数 使用维度函数、层次结构函数和级别函数 使用存储过程 (MDX) 注释(MDX 语法) 保留关键字(MDX 语法) MDX 查询基础知识 基本 MDX 查询 EXISTING 关键字 用查询轴和切片器轴限定查询 指定查询轴的内容 指定切片器轴的内容 在简单示例中使用查询轴和切片器轴 在查询中建立多维数据集上下文 在 MDX 中生成子多维数据集 在 MDX 中生成命名集 创建查询作用域的命名集 创建会话作用域的命名集 在 MDX 中生成计算成员 在 MDX 中生成单元计算 创建和使用属性值 操作数据 修改数据 使用变量和参数 MDX 脚本编写基础知识 基本 MDX 脚本 管理作用域和上下文 错误处理 支持的 MDX MDX 语言参考 MDX 语法约定 MDX 语句参考 MDX 脚本编写语句 MDX 数据定义语句 MDX 数据操作语句 MDX 运算符参考 --(注释) -(排除) -(负) -(减) *(叉积) *(乘) /(除) ^(幂) /*...*/(注释) //(注释) :(范围) +(加) +(正) +(字符串串联) +(联合) <(小于) <=(小于或等于) (不等于) =(等于) >(大于) >=(大于或等于) AND IS NOT OR XOR MDX 函数参考 AddCalculatedMembers Aggregate AllMembers Ancestor Ancestors Ascendants Avg Axis BottomCount BottomPercent BottomSum CalculationCurrentPass CalculationPassValue Children ClosingPeriod CoalesceEmpty Correlation Count(维度) Count(层次结构级别) Count(集) Count(元组) Cousin Covariance CovarianceN Crossjoin Current CurrentMember CurrentOrdinal CustomData DataMember DefaultMember Descendants Dimension Dimensions Distinct DistinctCount DrilldownLevel DrilldownLevelBottom DrilldownLevelTop DrilldownMember DrilldownMemberBottom DrilldownMemberTop DrillupLevel DrillupMember Error Except Exists Extract Filter FirstChild FirstSibling Generate Head Hierarchize Hierarchy IIf Intersect IsAncestor IsEmpty IsGeneration IsLeaf IsSibling Item(成员) Item(元组) KPIGoal KPIStatus KPITrend KPIWeight KPICurrentTimeMember KPIValue Lag LastChild LastPeriods LastSibling Lead Leaves Level Levels LinkMember LinRegIntercept LinRegPoint LinRegR2 LinRegSlope LinRegVariance LookupCube Max MeasureGroupMeasures Median Members(集) Members(字符串) MemberToStr MemberValue Min Mtd Name NameToSet NextMember NonEmpty NonEmptyCrossjoin OpeningPeriod Order Ordinal ParallelPeriod Parent PeriodsToDate Predict PrevMember Properties Qtd Rank RollupChildren Root SetToArray SetToStr Sib

662

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧