如何在MDX中将级别的总和显示为其最后一个子代的值

时间:2020-03-06 14:35:41  来源:igfitidea点击:

我有一个MDX查询,其中列出了OLAP数据库中所有"周"和"天"级别的度量。例如

SELECT 
{
    HIERARCHIZE( {[Business Time].[Week].members, [Business Time].[Date].members} )
} 
ON ROWS,
{
    [Measures].[Quantity]
} 
ON COLUMNS 
FROM [Sales]

不过,在显示一周的度量的地方,我不想显示所有"天"值的总和,而是显示一周中最后一天的值。例如

第一周:12
9月15日:10
9月16日:20
9月17日:12
9月18日:15
9月19日:8
9月20日:9
9月21日:12
第二周:15
9月22日:12
9月23日:15

我如何在MDX中实现这一目标?

解决方案

仅在以星期为单位显示时,将新的计算得出的度量添加到MDX的开头,以显示最后一天的值,否则保持不变:

WITH MEMBER [Measures].[Blah] AS 
'IIF(
   [Business Time].currentMember.level.name = "Week",
   ([Business Time].currentMember.lastChild, [Measures].[Quantity]),
   ([Business Time].currentMember, [Measures].[Quantity])
)'

我希望有一位客户提出这个奇怪的要求,我预计我们会在一个月内接到同一办公室内某人的电话,说此报告中的每周"总计"是错误的!