2016-03-25 24 views
1

"ülke" ve "referans" boyutlarıyla bir fatura küpü oluşturmak için Pentaho Mondrian kullanıyorum. rollerimden birine, yalnızca ülke "Brezilya" ya eşit olduğunda referans değerini göstermek istiyorum. Brezilya değilse, başvuru null olmalıdır.Pentaho Mondrian- Bir rolün boyut değerini gizle

Ne kadar: http://i.stack.imgur.com/yipPJ.png

olması gerektiği Nasıl: http://i.stack.imgur.com/PoF2w.png

Bunu nasıl yapabilirim?

CASE WHEN ile hesaplanmış bir üye kullanmaya çalıştım ancak işe yaramadı. Bunun yerine IIF kullanmalı mıyım?

ben kod bu, ama çok çalışmıyor:

WITH 
    MEMBER [dim_reference.Reference].[reference].Members AS 
    IIF 
    (
     [dim_country.country].[country].CurrentMember = 'Brazil' 
    ,[dim_reference.Reference].[reference].MEMBERS 
    ,'' 
    ) 
SELECT 
    NON EMPTY 
    {Hierarchize({[dim_country.country].[country].MEMBERS})} ON COLUMNS 
,NON EMPTY 
    Order 
    (
     { 
     Hierarchize({[dim_reference.Reference].[reference].MEMBERS}) 
     } 
    ,[dim_reference.Reference].CurrentMember.Name 
    ,BASC 
    ) ON ROWS 
FROM [billing_entry]; 

birisi bu nasıl yapacağını bilir mu?

cevap

0

Birkaç işaretçiler:

Yani bir üyesiyle eşitlik için kontrol etmek istiyorsanız IS operatörünü kullanmanız gerekir. Bundan daha ziyade

:

[dim_country.country].[country].CurrentMember = 'Brazil' 

Aşağıdaki kullanabilirsiniz - Eğer Brezilya üyesinin tam tam adı ile ÜSÖ değişiklik gerekebilir:

[dim_country.country].[country].CurrentMember 
     IS [dim_country.country].[country].[country].[Brazil] 

Rather'ın '' kullanmadan NULL kullanmalısınız. Bundan daha ziyade

:

IIF(
     <condition> 
    ,<if condition true> 
    ,'' 
    ) 

Bu kullanmalıdır:

IIF(
     <condition> 
    ,<if condition true> 
    ,NULL 
    ) 

Sen IIF kullanmak yerine CASE mümkünse doğru konum - genellikle IIF daha iyi performans gösteriyor.Ekran görüntüleri itibaren


Eğer Ülkeler ON ROWS yerine ON COLUMNS istiyorum bana bakıyor:

SELECT 
    NON EMPTY 
    {} ON COLUMNS 
,NON EMPTY 
    [dim_country.country].[country].MEMBERS ON ROWS 
FROM [billing_entry]; 

bunu yapabilirim Şimdi AdvWrks küp karşı SSAS kullanarak:

WITH 
    MEMBER [Measures].[X] AS 
    IIF 
    (
     [Customer].[Customer Geography].CurrentMember 
     IS 
     [Customer].[Customer Geography].[Country].&[Australia] 
    ,[Product].[Product Categories].CurrentMember.Name 
    ,null 
    ) 
    SET [s] AS 
     [Customer].[Customer Geography].[Country] 
    * 
     [Product].[Product Categories].[category] 
    MEMBER [Product].[Product Categories].[All].[calc] AS 
    [Product].[Product Categories].CurrentMember.Name 
SELECT 
    {[Measures].[X]} ON 0 
,[s] ON 1 
FROM [Adventure Works]; 

Hangi bu sonuçta:

enter image description here