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


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

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

В качестве альтернативы функция детализирует углублением кортежи из набора кортежей.

Синтаксис

DrilldownMember(Set_Expression1, Set_Expression2 [ , RECURSIVE ] )

Аргументы

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

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

Замечания

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

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

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

Детализация элемента не производится, если непосредственно за ним следует один из его дочерних элементов. Порядок элементов в наборе значим для обоих семейств функций Drilldown* и Drillup*.

Примеры

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

SELECT DrilldownMember 
   ( [Geography].[Geography].Children,
      {[Geography].[Geography].[Country].[Australia],
        [Geography].[Geography].[State-Province].[New South Wales]}
   )
   ON 0
   FROM [Adventure Works]

В следующем примере выполняется детализация углублением первого элемента Australia, являющегося элементом первого набора, который также присутствует во втором наборе. Тем не менее, поскольку указан аргумент RECURSIVE, функция продолжает рекурсивно сравнивать элементы результирующего набора (элементы уровня State-Province) со вторым набором, получая потомков каждого элемента результирующего набора (элементы уровня города), присутствующих во втором наборе, до тех пор, пока в результирующем наборе больше нельзя будет найти элементы, присутствующие во втором наборе.

SELECT DrilldownMember 
   ( [Geography].[Geography].Children,
      {[Geography].[Geography].[Country].[Australia],
        [Geography].[Geography].[State-Province].[New South Wales]}
   ,RECURSIVE)
   ON 0
   FROM [Adventure Works]