Mdx,大于 String 而不是 Numeric (Saiku) 之类的作品

Posted

技术标签:

【中文标题】Mdx,大于 String 而不是 Numeric (Saiku) 之类的作品【英文标题】:Mdx, greater than works like String and not Numeric (Saiku) 【发布时间】:2018-09-10 21:06:28 【问题描述】:

我正在使用 Saiku 并尝试在默认销售多维数据集中使用符号“>(大于)”按 mdx 进行过滤。问题是它像字符串而不是数字一样过滤。我想要的以下查询的值是 [51,52],但服务器 olap 响应是 [6,7,8,9,51,52]。知道如何过滤吗?

这是查询:

WITH
SET [~ROWS] AS

    FILTER([Time].[Weekly].[Week].Members, [Time].[Weekly]. [Week].CurrentMember.Properties("Caption") > '50')

SELECT
NON EMPTY [Measures].[Unit Sales] ON COLUMNS,
NON EMPTY [~ROWS] ON ROWS
FROM [Sales]

【问题讨论】:

【参考方案1】:

响应是使用'Cint',如下所示:

WITH
SET [~ROWS] AS
    
    FILTER([Time].[Weekly].[Week].Members, Cint([Time].[Weekly].[Week].CurrentMember.Properties("Caption")) > 50)
    
SELECT
NON EMPTY [Measures].[Unit Sales] ON COLUMNS,
NON EMPTY [~ROWS] ON ROWS
FROM [Sales]

【讨论】:

【参考方案2】:

我认为可能有其他方法。尝试一些可能会更有效。

WITH MEMBER Measures.ValueColumn as [Date].[Calendar].[July 1, 2001].MemberValue  
MEMBER Measures.KeyColumn as [Date].[Calendar].[July 1, 2001].Member_Key  
MEMBER Measures.NameColumn as [Date].[Calendar].[July 1, 2001].Member_Name  

SELECT Measures.ValueColumn, Measures.KeyColumn, Measures.NameColumn  ON 0  
from [Adventure Works]

【讨论】:

以上是关于Mdx,大于 String 而不是 Numeric (Saiku) 之类的作品的主要内容,如果未能解决你的问题,请参考以下文章

MDX

数据透视表中使用的 SSAS 中的新命名集 - MDX

PySpark:数据框:Numeric + Null 列值导致 NULL 而不是数值

MDX 计算的测量计数

来自 PHP 的 MDX 查询

为啥维度取决于MDX中的属性