Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

quantidade de linha ssas mdx dividida por SUM


OK! Acho que entendi o que você quer, tente isso. Com Root você pode obter o All de todas as dimensões.
Divide(
  [Measures].[Sales Line Amount AC Budget hidden]
 ,AGGREGATE(
   Root()
  ,[Measures].[Sales Line Amount AC Budget hidden]
  )
)

EDITAR:

Não pense que há uma maneira bastante fácil de fazer isso. Talvez dê uma olhada em Axis(1) em vez de raiz.

Eu não tentei isso em um cubo apenas dentro de uma consulta... e funciona..
Divide(
  [Measures].[Sales Line Amount AC Budget hidden]
 ,AGGREGATE(
   Axis(1)
  ,[Measures].[Sales Line Amount AC Budget hidden]
  )
)

EDIT2:

Desde que você queira que isso funcione com o Excel. Não há uma maneira clara de fazê-lo funcionar sem saber exatamente quais dimensões você deseja "pesar". O Excel funciona com subcubos, ou seja, a função Axis na verdade retorna TODOS os membros desse eixo.

Não há uma maneira de saber exatamente quais membros estão sendo realmente mostrados no MDX. Este deve ser um cálculo do lado do cliente.

Você pode fazer isso muito facilmente no EXCEL simplesmente selecionando o campo OPTION e indo para "Show Values ​​As". Com "% Grand Total" você terá exatamente a porcentagem que procura.