DrillupMember (многомерные выражения)

Возвращает элементы указанного набора, которые не являются потомками элементов второго заданного набора.

Синтаксис

DrillupMember(Set_Expression1, Set_Expression2) 

Аргументы

  • Set_Expression1
    Допустимое многомерное выражение, возвращающее набор.

  • Set_Expression2
    Допустимое многомерное выражение, возвращающее набор.

Замечания

Функция DrillupMember возвращает набор элементов, основывающихся на элементах, заданных в первом наборе и являющихся потомками элементов второго набора. Первый набор может иметь любую размерность, но второй набор должен быть одномерным. Порядок среди исходных элементов первого набора сохраняется. Функция формирует набор путем включения в него только тех элементов набора, которые являются прямыми потомками элементов набора. Если прямой предок элемента первого набора не представлен во втором наборе, то элемент первого набора включается в набор, возвращаемый этой функцией. Потомки первого набора, предшествующие предку элемента второго набора, также включаются.

Первый набор может содержать кортежи вместо элементов. Углубленная детализация кортежей является расширением OLE DB и возвращает набор кортежей вместо набора элементов.

Важное примечаниеВажно!

Элемент должен быть обобщен, только если за ним непосредственно следует потомок. Порядок элементов в наборе значим для обоих семейств функций Drilldown* и Drillup*. Рассмотрим применение функции Hierarchize для упорядочивания элементов первого набора.

Пример

Следующие три примера идентичны, за исключением второго набора. В первом примере вторым набором является элемент United States. В результате элемент Colorado исключается из результирующего набора. Это потомок элемента 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]

Второй пример показывает важное значение порядка элементов. Так как элемент DrillupMember только детализирует обобщением члены, за которыми сразу располагаются потомки в первом наборе, он не выполняет детализацию обобщением для элемента Canada. Канада отделяется от ее потомков США и Колорадо. Если изменить порядок элементов таким образом, чтобы элемент Canada располагался непосредственно над элементом Alberta, то элементы Alberta и Brunswick исключаются из этого набора строк.

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]

В третьем примере показано использование Hierarchize для устранения влияния порядка элементов, а также детализация обобщением для элемента Canada.

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] 

См. также

Справочник

Справочник по функциям многомерных выражений (многомерные выражения)