2017-01-25 1 views
0

Je travaille avec des données dans une configuration de cube OLAP. Je veux afficher tous les groupes d'étudiants en mathématiques avec le nombre d'étudiants distinct pour chaque groupe. Les étudiants sont placés dans un groupe de mathématiques en fonction de la façon dont ils ont marqué sur leur examen de placement en mathématiques. Ils sont également placés dans chaque groupe de maths inférieur à celui dans lequel ils ont été placés. (placé dans Math 106, également un membre de Math 105, 104, 103, 102, 101 et 100) Actuellement, je suis en mesure de montrer uniquement les groupes de mathématiques sur mes lignes et les élèves distincts comme une mesure sur les colonnes. Les nombres affichés ne sont distincts que par ligne et non pour l'ensemble du rapport. Ainsi, le groupe Math 100 affiche le nombre de tous les élèves en groupes mathématiques, non seulement Math 100.Nombre réellement distinct dans la hiérarchie (MDX)

WITH 
/*- Qv6.0.3431.1887 -*/ 

SELECT 
NON EMPTY 
{ 
DISTINCT ({ [Measures].[Distinct Students] }) 
} 
PROPERTIES PARENT_UNIQUE_NAME, MEMBER_KEY, MEMBER_TYPE 

ON COLUMNS, 
NON EMPTY 
{ 
    { [Student].[Student].[All Students] } 
    * { { { DISTINCT(
{ { FILTER(
{ { FILTER(
{ DESCENDANTS([Student Group].[Student Group].[All Student Groups] ,  [Student Group].[Student Group].[Student Group]) } , InStr(1,IIF(ISERROR( [Student Group].[Student Group].CURRENTMEMBER.MEMBER_CAPTION),"", [Student Group].[Student Group].CURRENTMEMBER.MEMBER_CAPTION) , "Math") <> 0 
) } 
} , InStr(1,IIF(ISERROR([Student Group].[Student  Group].CURRENTMEMBER.MEMBER_CAPTION),"", [Student Group].[Student  Group].CURRENTMEMBER.MEMBER_CAPTION) , "eligible") <> 0 
) } 
}) } 
} } 
} 
PROPERTIES PARENT_UNIQUE_NAME, MEMBER_KEY, MEMBER_TYPE 

ON ROWS 

FROM [Student Term] 
WHERE ([Terms].[Terms].[Term].&[138]) 
CELL PROPERTIES FORMATTED_VALUE, VALUE, FONT_NAME 

Voici une capture d'écran de la sortie: Math Groups Student counts

J'ai essayé de chercher partout ici, mais était pas réussi à trouver quelque chose pour aider. Je ne suis pas du tout compétent dans MDX, l'outil de reporting que nous utilisons le crée en fonction des éléments que nous choisissons dans le générateur de rapport (glisser et déposer principalement). L'outil vous permet de créer des mesures et des éléments personnalisés à l'aide de MDX. J'apprécie vraiment toute aide et s'il vous plaît laissez-moi savoir si plus d'informations sont nécessaires.

Merci!

==== MISE À JOUR 1-FEB-2017 ======= merci pour votre réponse. Je vais enfin me remettre au travail. J'ai créé des mesures personnalisées dans notre outil frontal basé sur votre code. J'ai changé le [Mesures]. [Étudiants] en [Mesures]. [Étudiants distincts] pour correspondre à une mesure disponible. Si je sélectionne la mesure personnalisée "StudentsCountDC" et exécute le rapport, il ne renvoie rien. Si je sélectionne la mesure personnalisée 'IsStudentsTop', les comptes qu'elle renvoie sont extrêmement volumineux, car elle ne fonctionne pas pour le terme sélectionné. Voici le nouveau MDX qui a été généré après avoir exécuté le rapport avec la mesure personnalisée nouvellement créée, "StudentsCountDC".

WITH 
/*- Qv6.0.3431.1887 -*/ 

SELECT 
NON EMPTY 
{ 
DISTINCT ({ [Measures].[#~~2d0c2a98-fed9-4797-a573-170d3e450e4c~~#] }) 
} 
PROPERTIES PARENT_UNIQUE_NAME, MEMBER_KEY, MEMBER_TYPE 

ON COLUMNS, 
NON EMPTY 
{ 
    { [Student].[Student].[All Students] } 
    * { [#~~9faf06d9-a022-493d-9dfd-dadd55793c37~~#] } 
} 
PROPERTIES PARENT_UNIQUE_NAME, MEMBER_KEY, MEMBER_TYPE 

ON ROWS 

FROM [Student Term] 
WHERE ([Terms].[Terms].[Term].&[136]) 
CELL PROPERTIES FORMATTED_VALUE, VALUE, FONT_NAME 

screenshots de nouvelles mesures: IsStudentsTop & StudentsCountDC measures Merci encore pour votre aide!

Répondre

0

C'est un peu difficile, personnellement, je ne l'ai pas encore testé. Hope, vous obtenez le point:

with 

Member [Measures].[StudentsCountDC] as 
SUM(
    [Student].[Student].[Student].Members, 
    IIF(
     not [Measures].[IsStudentsTop] 
     and 
     [Measures].[StudentsCount], 
     1, 
     NULL 
    ) 
) 

Member [Measures].[IsStudentsTop] as 
SUM(
    {[Student Group].[Student Group].PrevMember:NULL}, 
    [Measures].[StudentsCount] 
) 

IsStudentsTop vérifie si StudentsCount existe dans les groupes supérieurs (commandés par votre attribut). StudentsCountDC vérifie si l'étudiant actuel a IsStudentsTop et StudentsCount est non vide, puis renvoie 1 pour chaque étudiant, sinon renvoie Null.

+0

J'ai mis à jour mon message original puisque la section des commentaires ne permettait pas assez de caractères. Merci! –

+0

Qu'est-ce que [Mesures]. [# ~~ 2d0c2a98-fed9-4797-a573-170d3e450e4c ~~ #]? Vous devriez définir [Measures]. [IsStudentsTop] là. Pourriez-vous s'il vous plaît publier votre sortie, s'il y a lieu? –

+0

Désolé, [Mesures]. [# ~~ 2d0c2a98-fed9-4797-a573-170d3e450e4c ~~ #] est la mesure personnalisée que j'ai créée 'StudentsCountDC'. L'outil de création de rapports que j'utilise n'affiche pas les noms des éléments personnalisés créés sur le frontal. [output of IsStudentsTop] (http://imgur.com/a/ehNmE) les chiffres sont trop élevés, comme si on ignorait le terme spécifique et en comptant tous les étudiants qui ont déjà fréquenté le collège. Merci! –