2016-05-06 15 views
1

Ich arbeite mit einem Datenwürfel, der ein berechnetes Mitglied hat, das ein Prozentsatz ist, und ich muss die Aggregation für dieses Mitglied einen Durchschnitt und nicht eine Summe abrufen. HierSSAS Data Cube, wie kann ich einen Durchschnitt anstelle einer Summe als Dimensionsaggregation erhalten?

ist ein Screenshot oder der Würfel in Excel:

enter image description here

Die bolded Prozentsätze sind eine Summe, die für einen bestimmten Prozentsatz macht keinen Sinn. Wie kann ich einen Durchschnitt der gruppierten Prozentsätze erhalten?

die Geräte-ID ist eine Dimension, und die Bestell-ID ist eine separate Dimension. Ein Auftrag enthält einen Satz von Einheiten-IDs. Ich habe versucht, ein separates berechnetes Element für Bestellungen zu erstellen, aber ich weiß nicht, wie ich diese Menge in MDX darstellen soll, obwohl es in SQL sehr einfach wäre.

Mit anderen Worten, ich möchte die folgende SQL-Anweisung als ein Satz in MDX darzustellen:

SELECT [UnitSMA] WHERE [OrderKey] = <OrderKey> 
+0

** Moderator Hinweis **: Seien Sie nicht eine Frage bearbeiten Sie eine Antwort hinzuzufügen. –

Antwort

2

Wenn die Antwort wirklich einfach ist, diese SELECT [UnitSMA] WHERE [OrderKey] = <OrderKey> zu vertreten dann die folgenden genügt:

EXISTS(
    [fact connectivity].[UnitSMA].MEMBERS 
,[fact connectivity].[OrderKey].[<OrderKey>] 
) 

... also ich vermute, dass Ihre "mit anderen Worten" nicht korrekt ist?


EXISTS - MSDN hier: https://msdn.microsoft.com/en-us/library/ms144936.aspx?f=255&MSPPError=-2147217396

Wenn Sie Mitglieder aus einer Hierarchie suchen durch ein Mitglied aus einer zweiten Hierarchie, und beide Hierarchien sind Teil der gleichen Dimension dann die Version von oben Exists ist in Ordnung.

Wenn das Mitglied aus einer anderen Dimension ist, dann müssen Sie das zweite Formular verwenden, der besteht, dass ein drittes Argument enthält - das ist der Name einer Measure-Gruppe ist, die die beiden Dimensionen verbinden.

+0

Nun, nicht ganz ich denke. Würde [OrderKey] .CurrentMember in diesem Kontext arbeiten? Ich bin erstaunt, dass die "EXISTS" -Funktion bei all meinen Stunden der Google-Suche nicht einmal in einem Ergebnis auftaucht. Danke für deine Antwort! –

+0

@AlexSaurus mdx ist ein bisschen eine geheime Sprache (auch eine sterbende). Exist kann auf zwei verschiedene Arten verwendet werden: Lassen Sie mich die Antwort bearbeiten. – whytheq

0

(Posted Antwort im Namen des OP).

Aus irgendeinem Grund musste ich eine neue benannte Berechnung in der .dsv erstellen, die buchstäblich nur "1" war, und dann den gleitenden Durchschnitt der Konnektivität durch den gleitenden Durchschnitt dieser benannten Berechnung teilen. Jetzt zeigt es die korrekte Aggregation an. (Nur Division durch 1, oder sogar der gleitende Durchschnitt von 1, funktioniert nicht, es muss zwei einzelne Spalten in der. DSV, damit es funktioniert).