【问题标题】:LastNonEmpty in MDXMDX 中的 LastNonEmpty
【发布时间】:2017-02-14 09:56:39
【问题描述】:

如何替换 MDX 中 LastNonEmpty 聚合函数的行为?当我想使用它时,我得到:

严重性代码描述项目文件行错误与相关的错误 功能可用性和配置:“半附加措施” 分析的“64 位标准”版中不包含该功能 服务。 0

【问题讨论】:

标签: ssas mdx business-intelligence olap


【解决方案1】:

Chris Webb 在这里有一个快速的方法:https://blog.crossjoin.co.uk/2011/03/24/last-ever-non-empty-a-new-fast-mdx-approach/

WITH 

MEMBER MEASURES.DAYSTODATE AS 
COUNT(NULL:[Date].[Date].CURRENTMEMBER)-1

MEMBER MEASURES.HADSALE AS 
IIF([Measures].[Internet Sales Amount]=0, NULL, MEASURES.DAYSTODATE)

MEMBER MEASURES.MAXDATE AS 
MAX(NULL:[Date].[Date].CURRENTMEMBER, MEASURES.HADSALE)

MEMBER MEASURES.LASTSALE AS
IIF(ISEMPTY(MEASURES.MAXDATE), NULL, 
([Measures].[Internet Sales Amount],
[Date].[Date].[Date].MEMBERS.ITEM(MEASURES.MAXDATE)))


SELECT 
HEAD([Customer].[Customer].[Customer].MEMBERS, 10)
*
{[Measures].[Internet Sales Amount]
,MEASURES.[LASTSALE]} 
ON 0,
[Date].[Date].[Date].MEMBERS
ON 1
FROM [Adventure Works];

或者在多维数据集脚本中然后他使用这个:

CREATE MEMBER CURRENTCUBE.MEASURES.DAYSTODATE AS 
COUNT(NULL:[Date].[Date].CURRENTMEMBER)-1
, VISIBLE=FALSE;

CREATE MEMBER CURRENTCUBE.MEASURES.HADSALE AS 
IIF([Measures].[Internet Sales Amount]=0, NULL, MEASURES.DAYSTODATE)
, VISIBLE=FALSE;

SCOPE(MEASURES.MAXDATE, [Date].[Date].[Date].MEMBERS); 
    THIS = MAX(NULL:[Date].[Date].CURRENTMEMBER, MEASURES.HADSALE);
END SCOPE;

CREATE MEMBER CURRENTCUBE.MEASURES.LASTSALE AS
IIF(ISEMPTY(MEASURES.MAXDATE), NULL, 
([Measures].[Internet Sales Amount],
[Date].[Date].[Date].MEMBERS.ITEM(MEASURES.MAXDATE)));

【讨论】:

  • 我复制了这段代码(更改了度量),我得到:在解析字符串 [MEASURES].[MAXDATE] 时,在多维数据集中找不到“[MAXDATE]”成员。&The END SCOPE 语句与开始 SCOPE 语句不匹配。
  • 他将 MaxDate 作为多维数据集中的实际度量 - 范围分配覆盖了它:cwebbbi.files.wordpress.com/2011/03/image3.png
  • 您是否知道有关此度量的任何详细信息(我应该创建什么)?
猜你喜欢
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多