Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

ssas mdx quantità di riga divisa per SUM

OK! Penso di aver capito cosa vuoi provare questo. Con Root puoi ottenere Tutto da tutte le dimensioni.

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

MODIFICA:

Non pensare che ci sia un modo abbastanza semplice per farlo. Forse dai un'occhiata a Asse(1) invece di root.

Non l'ho provato in un cubo solo all'interno di una query... e funziona..

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

EDIT2:

Dal momento che vuoi che funzioni con Excel. Non esiste un modo chiaro per farlo funzionare senza sapere esattamente quali dimensioni vuoi "pesare". Excel funziona con i sottocubi, ciò significa che la funzione Axis restituisce effettivamente TUTTI i membri da quell'asse.

Non c'è un modo per sapere esattamente quali membri vengono effettivamente mostrati in MDX. Questo dovrebbe essere un calcolo lato cliente.

In realtà puoi farlo molto facilmente in EXCEL semplicemente selezionando il campo andando su OPZIONE e andando su "Mostra valori come". Con "% Grand Total" ti darà esattamente la percentuale che stai cercando.