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 在做报表
...全文
334 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

662

社区成员

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

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