我有一个Cube
Date dimension hierarchy
(日历,年,月,周,日)和度量为SalesData
,我想添加一个计算出的度量值SalesData
表示所选日期和上个月的最后一个日期。
日历层次结构如下
Date - Dimension
Calendar - Hierarchy
Year - [Date].[Calendar].[Year]
Quarter - [Date].[Calendar].[Quarter]
Month - [Date].[Calendar].[Month]
Week - [Date].[Calendar].[Week]
Day - [Date].[Calendar].[Day]
措施 [销售]
需要创建新的计算成员 - 比如[SalesMTD] 要求是当用户选择任何日期(例如2016年3月3日)时,计算成员应按如下方式给予销售
[SalesMTD] = [Sales] on 3 March 2016 - [Sales] on 29 Feb 2016
有人可以帮我写一个MDX query
计算尺度吗?
非常感谢您的帮助。
答案 0 :(得分:1)
请尝试以下代码。
#spelling_game_score_box_score.active_score {
transform: rotate(-30deg) scale(2);
}
然后使用上述计算编写另一个计算
CREATE MEMBER CURRENTCUBE.[Measures].[Sales Last Month]
AS ([Date].[Months].CURRENTMEMBER.PREVMEMBER, [Measures].[sales])
, VISIBLE = 1 ;
答案 1 :(得分:1)
with member measures.SalesDataLastDaylasMonth
as
[Date].[Calendar].currentmember.firstsibling.lag(1)
//or [Date].[Calendar].currentmember.firstsibling.prevmember
select {measures.SalesData, measures.SalesDataLastDaylasMonth} on 0,
[Date].[Calendar].[Day].members on 1
from [Some Cube]
此处currentmember.firstsibling.prevmember
在当月的天数列表中的第一天之前提取该成员。
此外,您显然可以在多维数据集中创建此成员,而不是像这样查询作用域。语法类似于上面的答案。
根据您的修改
有多种方法可以实现。以下是一些:
with member Measures.[SalesMTD]
as
Measures.[Sales]
-
(Measures.[Sales],Ancestor([Date].[Calendar].currentmember, [Date].[Calendar].[Month]).firstchild.firstchild)
//(Measures.[Sales],[Date].[Calendar].currentmember.parent.parent.firstchild.firstchild.lag(1))
//(Measures.[Sales],[Date].[Calendar].currentmember.parent.parent.firstchild.firstchild.prevmember)
select Measures.[SalesMTD] on 0,
[Date].[Calendar].[Day].members on 1
from [Some Cube]
第一种方法是最好的。