2017-06-10 1 views
0

Je STH comme ça dans ma table de fait:Comment utiliser MeasureExpression en SSDT?

un dimenstion nommé DimType qui peut avoir ces valeurs "FIND, PERDRE, CADEAU" et une mesure nommée comte qui a un nombre positif

Je veux cette mesure en SSDT par SOMME AgrégerFonction mais avec un peu de changement, avant l'agrégation je veux créer ceci comte si elle est de type PERDRE ex:

Type: FIND      /Count:
Type: PERDRE  /Count:  
Type: CADEAU    /Compte:    

ALORS: SUM (Count) = 12-5 + 4 = 11

Dois-je utiliser MeasureExpression dans les propriétés de mesure? Comment puis je faire ça?

Répondre

0

En fait, la meilleure façon de le faire est SQL:

iif(type = 'LOSE',-count,count) 

Si vous en avez besoin pour une raison d'agrégation à la fois positives et négatives que vous pouvez-vous utiliser des calculs MDX.

simple:

[Measures].[Count] - ([dimType].[Type].[LOSE],[Measures].[Count]) * 2 

Universal un.

Sum(
    Existing [dimType].[Type].[Type].Members, 
    Iif(
     [dimType].[Type].CurrentMember is [dimType].[Type].[LOSE], 
     -[Measures].[Count], 
     [Measures].[Count] 
    ) 
) 
+0

merci de beaucoup :) Pour mieux tester j'ai mis vos formules sur cube [Adventure Works] en changeant [DimType] [Type] à ** [Produit]. [Catégorie] ** (Je veux ** [Vélo] ** être négatif au lieu de [PERDRE]) et changer [Mesures]. [Compter] à ** [Mesures]. [Commande Internet Quantité] ** Voici le résultat [Image] (http://oi65.tinypic.com/2i8jgcy.jpg) comme vous pouvez le voir dans l'image, si je filtre la catégorie F1_Simple n'est pas correct lors de la sélection de la catégorie sur les lignes et d F2_sum n'est pas correct lorsque vous ne sélectionnez pas la catégorie sur les lignes – Neda

+0

Heh, essayez Excel et vous serez surpris. :) –

+0

Le problème est générateur de filtre de navigateur BIRD. BIRD met tout en sous-sélection qui est incorrect pour une sorte de calculs (les calculs ne savent tout simplement pas ce que vous avez filtré, à cause des sous-requêtes). Pendant ce temps, Excel ne vous permettra pas de générer des sous-sélections, vous évitant ainsi des résultats inattendus. –