2008-09-23 7 views
1

J'ai une requête MDX qui répertorie une mesure pour tous les niveaux "Semaine" et "Jour" dans la base de données OLAP. Par exempleComment afficher le total d'un niveau en tant que valeur de son dernier enfant dans MDX

SELECT 
{ 
    HIERARCHIZE({[Business Time].[Week].members, [Business Time].[Date].members}) 
} 
ON ROWS, 
{ 
    [Measures].[Quantity] 
} 
ON COLUMNS 
FROM [Sales] 

Lorsque la mesure est affichée pendant une semaine que, au lieu de montrer le total de toutes les valeurs de jour, je voudrais montrer la valeur pour le dernier jour dans la semaine. Par exemple

Semaine 1: 12
15 septembre: 10
16 septembre: 20
17 septembre: 12
18 septembre: 15
19 septembre: 8
20 septembre: 9
21 septembre: 12
semaine 2: 15
22 septembre: 12
23 Sept: 15

Comment puis-je réaliser cela dans le MDX?

Répondre

1

Ajouter une nouvelle mesures calculées sur le début de votre MDX qui montre la dernière valeur du jour que si elle est représentée au niveau de la semaine, sinon, laissez inchangée:

WITH MEMBER [Measures].[Blah] AS 
'IIF(
    [Business Time].currentMember.level.name = "Week", 
    ([Business Time].currentMember.lastChild, [Measures].[Quantity]), 
    ([Business Time].currentMember, [Measures].[Quantity]) 
)' 

Je me attends à un client demandé cette demande étrange, et je prédis que vous recevrez un appel dans un mois de quelqu'un dans le même bureau, en disant que le «total» hebdomadaire est faux sur ce rapport!

+0

En fait, ce n'est pas une demande si bizarre, si vous traitez la quantité comme un «montant de clôture». Ainsi, le stock de clôture d'un article pour la semaine est en fait le stock de clôture de cet article le dernier jour. –

+0

Bonne réponse. Je ferais juste un changement: utilisez IS pour savoir à quel niveau se trouve le membre. [Temps d'affaires] .currentMember.level EST [temps d'affaires]. [Semaine] C'est plus efficace. –

Questions connexes