sql >> Databasteknik >  >> RDS >> Sqlserver

ssas mdx linjekvantitet dividerat med SUM

OK! Jag tror att jag förstår vad du vill prova detta. Med root du kan få allt från alla dimensioner.

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

EDIT:

Tror inte det finns ett ganska enkelt sätt att göra det på. Kanske ta en titt på Axis(1) istället för root.

Jag försökte inte detta i en kub bara inom en fråga... och det fungerar..

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

EDIT2:

Eftersom du vill att detta ska fungera med Excel. Det finns inget tydligt sätt att få det att fungera utan att veta exakt vilka dimensioner du vill "Vikta". Excel fungerar med underkuber, det betyder att axelfunktionen faktiskt returnerar ALLA medlemmar från den axeln.

Det finns inget sätt att veta exakt vilka medlemmar som faktiskt visas i MDX. Detta bör vara en beräkning på klientsidan.

Du kan faktiskt göra detta mycket enkelt i EXCEL genom att helt enkelt välja fältet, gå till OPTION och gå till "Visa värden som". Med "% Grand Total" ger dig exakt den procentandel du letar efter.




  1. Skapa och använd temptabell i kapslade frågor

  2. Hur anger man ett portnummer i SQL Server-anslutningssträngen?

  3. Antal veckodagar i ett datumintervall i TSQL

  4. Hitta brödsmulor för kapslade set