Поделиться через


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

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

Синтаксис

  
DrillupMember(Set_Expression1, Set_Expression2)   

Аргументы

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

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

Замечания

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

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

Внимание

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

пример

Следующие три примера идентичны, за исключением второго набора. В первом примере вторым набором являются США. В результате Колорадо исключается из результирующего набора. Он является потомком США.

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 выполняет детализацию только на тех членах, за которыми следует немедленно потомки в первом наборе, он не выполняет детализацию на члене Канады. Канаду отделяются от ее потомков США и Колорадо. Если изменить порядок элементов таким образом, что Канада окажется непосредственно над Альбертой, то Альберта и Брунсвик исключаются из набора строк.

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]  

В трех примерах показано, как использование иерархии может снизить влияние порядка членов и детализацию на члене Канады.

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]  
  

См. также

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