仅 SSAS MDX YTD 最后值

SSAS MDX YTD Last Value only

请你帮忙:

事实table a) 实际值

测量:每周流入这是基础数据库中的字段table [措施].[每周流入]

我使用以下方法计算年初至今的流入量

汇总 ( 截止日期 ( [期末].[期末].[年], [期间结束].[期间结束].CurrentMember ), [措施].[_每周流入] )

我想显示一个新的计算度量值,它将仅显示显示实际流入的最后一条记录的单个 YTD 流入值。 这不能作为一个 运行 总数重复,只是一个值。请参阅所附示例: Screen shot 我如何使用计算的度量来实现这一目标?能否举个例子?

日期维度:See screen shot

添加MDX后请看截图3。不应显示粉红色背景的值。绿色背景者需出示:Screen Shot 3

屏幕截图 4:Additional Measure

屏幕截图 5:Screen shot 5

Screen Shot 6

谢谢

所以您需要 运行 BottomCount(1 行)在您的 [Measures] 上。[_Weekly Inflow] 以获得具有非空值 _Weekly Inflow 的最后一个元组,这将是一个计算的度量.接下来,在您的 YTD 度量中添加一个案例,检查 [Period End].[Period End] 用户层次结构的当前值到上述度量的唯一值。我手头没有示例多维数据集,但查询结构如下所示。

 with member Measures.[NewColumn]
as 
(bottomcount(
nonempty(
existing
{([Date].[Date].[Date].members)}
,[Measures].[_Weekly Inflow]),
1
).item(0).Name

member 
Measures.[YTD]
as 
case when [Period End].[Period End].currentmember.name=Measures.[NewColumn] then 
Aggregate ( PeriodsToDate ( [Period End].[Period End].[Year], [Period End].[Period End].CurrentMember ), [Measures].[_Weekly Inflow] )
else 
null end

编辑

with member Measures.[NewColumn]
    as 
    (bottomcount(
    filter(
    existing
    {([Date].[Date].[Date].members)}
    ,[Measures].[_Weekly Inflow]>0),
    1
    ).item(0).Name

    member 
    Measures.[YTD]
    as 
    case when [Period End].[Period End].currentmember.name=Measures.[NewColumn] then 
    Aggregate ( PeriodsToDate ( [Period End].[Period End].[Year], [Period End].[Period End].CurrentMember ), [Measures].[_Weekly Inflow] )
when 
[Period End].[Period End].currentmember.name=[Period End].[Period End].defaultmember then Aggregate ( PeriodsToDate ( [Period End].[Period End].[Year], [Period End].[Period End].CurrentMember ), [Measures].[_Weekly Inflow] )
    else 
    null end

编辑

    member 
    Measures.[YTD]
    as 
    case when [Period End].[Period End].currentmember.name=Measures.[NewColumn] then 
    Aggregate ( PeriodsToDate ( [Period End].[Period End].[Year], [Period End].[Period End].CurrentMember ), [Measures].[_Weekly Inflow] )
when 
[Period End].[Period End].currentmember.name="Feburary 2018" then Aggregate ( PeriodsToDate ( [Period End].[Period End].[Year], [Period End].[Period End].CurrentMember ), [Measures].[_Weekly Inflow] )
    else 
    null end