MDX-запрос не дает правильного ответа - PullRequest
1 голос
/ 05 января 2012

Теперь у меня другая проблема с разными MDX.

Для деталей текущего месяца я также получаю данные за последний месяц .. Используемый мной запрос MDX:

/*
SELECT 
NON EMPTY 
    { Hierarchize ( { [Offer].[GrandTotal], [Offer].[GrandTotal].Children }) } 
        ON COLUMNS, 
NON EMPTY 
    { Hierarchize ( { [Circle].[GrandTotal], [Circle].[GrandTotal].Children }) } 
        ON ROWS 
FROM 
    [SCMAircel_ActiveBase] 
WHERE 
  ( [Measures].[TotalCount], 
    [Subscriber State].[GrandTotal], 
    [Time].[2012].[${curMonth}].[${curDay}])
*/

Я использую два параметра, которые дают правильный месяц, изначение даты в дизайнере отчетов Pentaho.Но проблема объясняется с помощью приведенного ниже примера.

Я хочу по кругу подсчитать предложение за день. Например: на дату 04/01/2012.Но я получаю значения за последний месяц в тот же день тоже (01-12-2011), потому что это значение доступно в таблице.Но мне нужны только данные 01-01-2012 ..

[Subscriber State].[GrandTotal] содержит такие значения, как ACTIVE, GRACE, SUSPEND, которые я фильтрую,

Я незнать, как это значение TOTAL_COUNT складывается, даже если месяц и дата проходят правильно ...

Просьба сообщить любое решение, если кто-нибудь знает об этом

1 Ответ

1 голос
/ 05 января 2012

Я не знаком с Pentaho, но со службами аналитики SQL Server.Я предполагаю, что, поскольку MDX является стандартом, не должно быть (m) каких-либо различий;)

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

Итак, я предлагаю вам попробовать (даже если трудно понять вашу проблему без дальнейшего исследования):

/*
SELECT 
    {
        // it is best practice to put measures on columns
        [Measures].[TotalCount]  
    }
    ON COLUMNS, 
    NON EMPTY 
    {
        // if you want multiple dimension to be aggregated, you should cross join these 
        Hierarchize ( { [Offer].[GrandTotal], [Offer].[GrandTotal].Children }) } 
        *    // cross join here
        Hierarchize ( { [Circle].[GrandTotal], [Circle].[GrandTotal].Children }) 
    } 
    ON ROWS 
FROM 
    [SCMAircel_ActiveBase] 
WHERE 
  (
    //[Subscriber State].[GrandTotal], // i don't get this. You either need to filter for certain members, or you want members to be crossjoined. But putting a member hierarchy in filter doesn't make sense to me
    {[Subscriber State].[GrandTotal].[ACTIVE], [Subscriber State].[GrandTotal].[Grace] } // like this for example
    ,[Time].[2012].[${curMonth}].[${curDay}]
   )
*/
...