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

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

Синтаксис

  
Intersect(Set_Expression1 , Set_Expression2 [ , ALL ] )  

Аргументы

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

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

Замечания

Функция Intersect возвращает пересечение двух наборов. По умолчанию эта функция удаляет дубликаты из обоих наборов до проведения операции над наборами. Оба набора должны иметь одинаковую размерность.

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

пример

Следующий запрос возвращает значения 2003 и 2004 годов. Эти два элемента присутствуют в обоих указанных наборах.

SELECT

INTERSECT(

{[Date].[Calendar Year].&[2001], [Date].[Calendar Year].&[2002],[Date].[Calendar Year].&[2003]}

, {[Date].[Calendar Year].&[2002],[Date].[Calendar Year].&[2003], [Date].[Calendar Year].&[2004]})

ON 0

FROM

[Adventure Works]

Следующий запрос завершается ошибкой, поскольку два заданных набора содержат элементы из различных иерархий.

SELECT

INTERSECT(

{[Date].[Calendar Year].&[2001]}

, {[Customer].[City].&[Abingdon]&[ENG]})

ON 0

FROM

[Adventure Works]

См. также

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