MDX, больше, чем работает как String, а не Numeric (Saiku) - PullRequest
0 голосов
/ 11 сентября 2018

Я использую Saiku и пытаюсь фильтровать по mdx, используя символ '> (больше чем)' в кубе продаж по умолчанию.Проблема в том, что он фильтрует как String, а не как Numeric.Значения, которые я хочу получить для приведенного ниже запроса: [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]

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Я думаю, что могут быть альтернативные подходы. С экспериментами некоторые могут быть более эффективными.

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]
0 голосов
/ 11 сентября 2018

Ответ должен использовать '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]
...