Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

ssas mdx Zeilenmenge dividiert durch SUM

OK! Ich glaube, ich verstehe, was Sie wollen. Probieren Sie es aus. Mit Root Sie können das All aus allen Dimensionen erhalten.

Divide(
  [Measures].[Sales Line Amount AC Budget hidden]
 ,AGGREGATE(
   Root()
  ,[Measures].[Sales Line Amount AC Budget hidden]
  )
)

BEARBEITEN:

Glaube nicht, dass es eine ziemlich einfache Möglichkeit gibt, dies zu tun. Vielleicht werfen Sie einen Blick auf Axis(1) statt root.

Ich habe das nicht in einem Cube nur innerhalb einer Abfrage versucht... und es funktioniert...

Divide(
  [Measures].[Sales Line Amount AC Budget hidden]
 ,AGGREGATE(
   Axis(1)
  ,[Measures].[Sales Line Amount AC Budget hidden]
  )
)

BEARBEITEN2:

Da Sie möchten, dass dies mit Excel funktioniert. Es gibt keinen klaren Weg, es zum Laufen zu bringen, ohne genau zu wissen, welche Dimensionen Sie "gewichten" möchten. Excel funktioniert mit Subcubes, das heißt, die Axis-Funktion gibt tatsächlich ALLE Mitglieder dieser Achse zurück.

Es gibt keine Möglichkeit, genau zu wissen, welche Mitglieder tatsächlich in MDX angezeigt werden. Dies sollte eine clientseitige Berechnung sein.

Sie können dies tatsächlich sehr einfach in EXCEL tun, indem Sie einfach das Feld auswählen, das zu OPTION geht, und zu "Werte anzeigen als" gehen. Mit "% Gesamtsumme" erhalten Sie genau den Prozentsatz, den Sie suchen.