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]