问个mdx求和的问题

lighting_pig 2015-03-17 10:26:54
WITH MEMBER [Measures].[季度累计] AS
(
sum(Qtd(),[Measures].[BQYS])
)

SELECT NON EMPTY { [Measures].[BQYS],[Measures].[季度累计] } ON COLUMNS,

NON EMPTY { ([会计日期].[年].[年].ALLMEMBERS * [会计日期].[月].[月].ALLMEMBERS ) }
ON ROWS
FROM [Finance Center]

--------------------------
假设我求季度累计mdx是上面这么写,现在需要算一个季度总和怎么写?所谓季度总和就是假设
1月 100
2月 110
3月 100
4月 90

1月 季度总和 310
2月 季度总和 310
3月 季度总和 310
4月 季度总和 90

...全文
216 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lighting_pig 2015-03-20
  • 打赏
  • 举报
回复
我自己解决了 sum([会计日期].[季].CurrentMember, [Measures].[BQYS]), 这样写好像就可以,上面的人还是给分吧
liao19890923 2015-03-19
  • 打赏
  • 举报
回复
如果要求季度的综合的话,那我们可以聚合一下当前月份的父子节点的数据。 MDX有一个PARENT的函数。 大致的做法如下。 WITH MEMBER [Measures].[季度累计] AS ( sum(Qtd(),[Measures].[BQYS]) ) MEMBER [Measures].[季度总和] AS AGGREGATE([Dimension].[Hierarchy].CURRENTMEMBER.PARENT,[Measures].[BQYS]) SELECT NON EMPTY { [Measures].[BQYS],[Measures].[季度累计],[Measures].[季度总和] } ON COLUMNS, NON EMPTY { ([会计日期].[年].[年].ALLMEMBERS * [会计日期].[月].[月].ALLMEMBERS ) } ON ROWS FROM [Finance Center] https://msdn.microsoft.com/zh-cn/library/ms145513.aspx
天善智能 2015-03-19
  • 打赏
  • 举报
回复
直接累加的 。。。。
hilex_jay 2015-03-17
  • 打赏
  • 举报
回复
if OBJECT_ID('tempdb..#t') >0  drop table #t

create table #t
(yue nvarchar(10) , qty int)

insert into #t values
(N'1月',  100),
(N'2月',  110),
(N'3月', 100),
(N'4月', 90),
(N'5月', 90),
(N'6月', 90),
(N'7月', 90);

with cte as
(
select number,NTILE(4)over(order by number) id from master..spt_values a
where type = 'P' and number between 1 and 12
  
)
select yue + N' 季度总和',SUM(qty)over(partition by id) 总和数量 from cte a
    join #t b on substring(b.yue,1,1) = a.number
order by id


594

社区成员

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

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