DrillupMember (MDX)

Returnerar medlemmarna i en specificerad mängd som inte är ättlingar till medlemmar i en andra specificerad mängd.

Syntax

  
DrillupMember(Set_Expression1, Set_Expression2)   

Arguments

Set_Expression1
Ett giltigt Multidimensional Expressions (MDX)-uttryck som returnerar en mängd.

Set_Expression2
Ett giltigt Multidimensional Expressions (MDX)-uttryck som returnerar en mängd.

Remarks

Funktionen DrillupMember returnerar en uppsättning medlemmar baserade på de medlemmar som anges i den första mängden och som är ättlingar till medlemmar i den andra mängden. Den första mängden kan ha vilken dimension som helst, men den andra mängden måste innehålla en endimensionell mängd. Ordningen bevaras bland de ursprungliga medlemmarna i den första uppsättningen. Funktionen konstruerar mängden genom att endast inkludera de medlemmar i den första mängden som är omedelbara ättlingar till medlemmar i den andra mängden. Om den omedelbara förfadern till en medlem i den första mängden inte finns i den andra mängden, inkluderas medlemmen i den första mängden i mängden som denna funktion returnerar. Ättlingar i den första uppsättningen som föregår en förfadermedlem i den andra gruppen inkluderas också.

Den första mängden kan innehålla tupler istället för medlemmar. Tupledrilldown är en utvidgning av OLE DB och returnerar en uppsättning tupler istället för medlemmar.

Important

En medlem blir bara borrad upp om den omedelbart följs av ett barn eller en ättling. Ordningen på medlemmarna i setet är viktig för både Drilldown* och Drillup* funktionerna. Överväg att använda Hierarchize-funktionen för att korrekt ordna medlemmarna i den första mängden.

Example

Följande tre exempel är identiska förutom den andra uppsättningen. I det första exemplet är den andra mängden United States. Som ett resultat utesluts Colorado från resultatmängden. Den är en ättling till United States.

SELECT DrillUpMember (   
  { [Geography].[Geography].[Country].[Canada]   
   ,[Geography].[Geography].[Country].[United States]   
   ,[Geography].[Geography].[State-Province].[Colorado]   
   ,[Geography].[Geography].[State-Province].[Alberta]   
   ,[Geography].[Geography].[State-Province].[Brunswick]    
 }   
 , {[Geography].[Geography].[Country].[United States]}   
 ) ON 0   
FROM [Adventure Works]  

Exempel två visar oss vikten av medlemsordning. Eftersom DrillupMember bara borrar upp på de medlemmar som omedelbart följs av ättlingar i första setet, borrar det inte upp på Kanada-medlemmen. Kanada skiljs från sina ättlingar av United States och Colorado. Om du omorganiserar medlemmarna så att Kanada ligger direkt ovanför Alberta, så utesluts både Alberta och Brunswick från raduppsättningen.

SELECT DrillUpMember (   
 {  [Geography].[Geography].[Country].[Canada]   
   ,[Geography].[Geography].[Country].[United States]   
   ,[Geography].[Geography].[State-Province].[Colorado]   
   ,[Geography].[Geography].[State-Province].[Alberta]   
   ,[Geography].[Geography].[State-Province].[Brunswick]    
 }   
 , {[Geography].[Geography].[Country].[Canada]}   
 )   
ON 0   
FROM [Adventure Works]  

Exempel tre visar hur användningen av Hierarchize kan mildra effekterna av medlemsordning, och drillar upp på Kanada-medlemmen.

SELECT DrillUpMember (   
 Hierarchize   
  (   
   { [Geography].[Geography].[Country].[Canada]   
    ,[Geography].[Geography].[Country].[United States]   
    ,[Geography].[Geography].[State-Province].[Colorado]   
    ,[Geography].[Geography].[State-Province].[Alberta]   
    ,[Geography].[Geography].[State-Province].[Brunswick]    
   }   
  ), {[Geography].[Geography].[Country].[Canada]}   
 )   
ON 0   
FROM [Adventure Works]