2015-07-27 1 views
1

(cette question continue fil "SSRS mdx report: use dimension on columns", répond par @whytheq)SSRS rapport mdx: dimenstion sur les colonnes sorties nulls si non sélectionnée sur les lignes aussi

Ce code a été construit dans le fil de previouse:

WITH 
MEMBER [Measures].[Contacts] AS 
     IIF([Sales_step].CURRENTMEMBER IS [Sales_step].&[contact], [Measures].[Qnt], null) 
MEMBER [Measures].[Clients] AS 
     IIF([Sales_step].CURRENTMEMBER IS [Sales_step].&[client], [Measures].[Qnt], null) 
MEMBER [Measures].[Funded] AS 
     IIF([Sales_step].CURRENTMEMBER IS [Sales_step].&[funded], [Measures].[Qnt], null) 

SELECT {[Measures].[Contacts], 
     [Measures].[Clients], 
     [Measures].[Funded]} ON COLUMNS, 

NON EMPTY  
     crossjoin({[City].CHILDREN},        
       {[Sales_step].CHILDREN}) ON ROWS 

FROM (SELECT ([Sales_step].MEMBERS) ON COLUMNS 
FROM [SALES_PIPE]) 

il produit bon résultat:

enter image description here

Maintenant, je veux réduire la quantité de lignes à une [ville] dimension seulement pour obtenir le résultat comme:

enter image description here

Pour ce faire, je l'ai essayé 2 modifications au code:

(1) supprimer Crossjoin:

NON EMPTY  
     crossjoin({[City].CHILDREN},        
       {[Sales_step].CHILDREN}) ON ROWS 

avec un [City] dimension seulement:

NON EMPTY [City].CHILDREN ON ROWS 

(2) laisser Crossjoin et incapsulate en extrait() func:

 Extract(
     crossjoin({[City].CHILDREN},        
       {[Sales_step].CHILDREN}), 
     [City]) ON ROWS 

mais les deux variantes donnent des cellules vides:

enter image description here

Comment puis-je obtenir de brefs résultats pour une dimension [Ville] sur les lignes seulement?

Répondre

0

Si vous essayez de changer vos mesures en tuples, que se passe-t-il?

WITH 
    MEMBER [Measures].[Contacts] AS 
    (
     [Sales_step].&[contact] 
    ,[Measures].[Qnt] 
    ) 
    MEMBER [Measures].[Clients] AS 
    (
     [Sales_step].&[client] 
    ,[Measures].[Qnt] 
    ) 
    MEMBER [Measures].[Funded] AS 
    (
     [Sales_step].&[funded] 
    ,[Measures].[Qnt] 
    ) 
SELECT 
    { 
    [Measures].[Contacts] 
    ,[Measures].[Clients] 
    ,[Measures].[Funded] 
    } ON COLUMNS 
,NON EMPTY 
    [City].Children ON ROWS 
FROM 
(
    SELECT 
    [Sales_step].MEMBERS ON COLUMNS 
    FROM [SALES_PIPE] 
); 
+0

Il est intéressant et je tryed, mais le résultat est le même - nulls. Cher @whytheq, devinez plus, s'il vous plaît – Globe

0

ont simplement:

SELECT NON EMPTY [City].CHILDREN ON ROWS, 
NON EMPTY [Sales_step].CHILDREN ON COLUMNS 
FROM [SALES_PIPE] 
WHERE ([Measures].[Qnt]) 
+0

il donne des nulls. [Sales_step] est une hiérarchie, pas une mesure. il ne peut pas fonctionner de cette manière – Globe

+0

Il sera parce qu'il y a une mesure dans la clause «WHERE». Il donne 'NULL' car il n'y a pas de valeurs de' Measures.Qnt' pour les paires possibles 'city' vs' Sales_Step' – SouravA

+0

@Globe Que se passe-t-il lorsque vous parcourez le cube avec 'City',' Sales_step' et 'Measures. Qnt'? – SouravA