2016-09-12 4 views
0

Ich bin neu in SSAS und Cubes.SSAS Conditional Cube berechnet Mitglied

Ich habe eine einfache Datenbanktabelle:

product|value|status 
-------|-----|------ 
A|100|1 
B|20|0 
A|20|0 
B|80|1 

Feld Status zeigt, ob es oder bereits eine geschlossene Verkauf geplant.

Ich hätte gerne Maßnahmen in den Würfel für Geplant (0) Verkauf und Geschlossen (1) Verkauf. Sie sollten den Wert pro Produkt im gegebenen Status summieren.

Output Würfel sollte wie folgt aussehen:

product|planned sale|closed sale  
------|---------|----------- 
A|20|100 
B|20|80 

Ich habe Maß für Wert und Status. Unabhängig davon, wie ich die Funktion teile, wird Boolescher Status aggregiert. Ich schätze, mein Maß ist falsch konfiguriert. Ich habe versucht, es auf Boolean zu setzen, aber es scheint zu tun "und" Berechnung.

Ich versuchte IFF und .currentmember in der Hoffnung, dass es iterieren würde.

Ich muss etwas Grundlegendes vermissen, bitte helfen. Vielen Dank.

Antwort

0

Fügen Sie eine einfache Statusdimension hinzu, mit 0 für Planned und 1 für Closed.

Es wird aggregiert, weil Sie es gerade als Maß verwenden.

EDIT basierend auf Ihren Kommentar:

Ich glaube, Sie falsch davon aus, dass SSAS den Wert von measures.status als Boolean interpretieren. SQL hat kein Konzept eines booleschen Datentyps. Obwohl der bit-Datentyp verwendet werden kann, um boolesche Werte zu speichern, können Sie in SQL nicht IF [MyBitColumn] THEN ... sagen. Stattdessen müssen Sie IF [MyBitColumn]=1 THEN ... sagen. SQL Server versteht nicht automatisch, dass 1 = wahr und 0 = falsch ist.

Versuchen Sie dies für Ihre berechnete Kennzahl:

iif([Measures].[Status]=1, [Measures].[Value],0) //closed sale 
iif([Measures].[Status]=0, [Measures].[Value],0) //planned sale 
+0

Während das funktioniert, um Anforderungen zu erfüllen ich brauche eher getrennt berechnete Maßnahmen zu schaffen, um die Lage sein, dann ein durch das Maß gesteuert. Ich suche nach einem Hinweis darauf, wie man berechnete Measure konfiguriert, um äquivalent zu "Sumif" -Funktion in Excel :) –

+0

Veröffentlichen Sie Ihren Versuch, IIF() zu verwenden, damit wir es debuggen können. –

+0

ich versuchte: iif ([Maßnahmen]. [Status], [Maßnahmen]. [Wert], 0) für diejenigen, die zu 1 und! [Meaures]. [Status] für diejenigen, die nicht bewerten. Es scheint jedoch [Status] zu aggregieren, obwohl das [Status] -Maß auf keine Aggregate gesetzt ist. –

Verwandte Themen