2016-07-12 10 views
0

Ich möchte ein Set von einem anderen Set, das durch das Ereignis @{date} zurückgegeben wird, filtern. Der folgende Code funktioniert nur, wenn das Ereignis @{date} ein einzelnes Mitglied zurückgibt (z. B. [TIME_DIMENSION].[YEAR].[2010]). Gibt es Vorschläge, wie gefiltert werden kann, wenn das Ereignis mehr als ein Mitglied zurückgibt?Filter Set von einem anderen Set

WITH SET [A] AS 
    Filter(
     TopPercent(
      [PRODUCTS].members - [PRODUCTS].[all], 
      80, 
      [Measures].[Sales] 
     ), 
     @{date} 
    ) 
+0

Können Sie beschreiben, was Sie mit der Filterfunktion erreichen möchten? Möchten Sie die leeren Produkte aus den Top80-Produkten entfernen? – ic3

+0

Ich möchte von den Top80-Produkten diejenigen behalten, die eine Verkaufsnummer zu den durch das '@ {date}' Ereignis angegebenen Daten haben. –

+0

siehe die Antwort unten – ic3

Antwort

1

Vielleicht könnten Sie die NonEmpty Funktion verwenden? Es würde den Satz von nicht leeren Tupeln aus dem Satz zurückgeben.

WITH SET [A] AS 
NonEmpty( 
     TopPercent(
      [PRODUCTS].members - [PRODUCTS].[all], 
      80, 
      [Measures].[Sales] 
     ) 
    ,@{date} * [Measures].[Sales] 
     )