집합 함수를 사용하는 집합 수정자
중첩된 집합 정의를 사용하여 필드 값 집합을 정의해야 하는 경우가 있습니다. 예를 들어 제품을 선택하지 않고 특정 제품을 구매한 모든 고객을 선택할 수 있습니다.
이러한 경우 요소 집합 함수 P() 및 E()를 사용합니다. 필드의 가능한 값과 제외된 값의 요소 집합을 각각 반환합니다. 대괄호 안에는 해당 필드와 범위를 정의하는 집합 표현식을 지정할 수 있습니다. 예:
P({1<Year = {2021}>} Customer)
그러면 2021년에 거래가 있었던 고객 집합이 반환됩니다. 그런 다음 집합 수정자에서 이를 사용할 수 있습니다. 예:
Sum({<Customer = P({1<Year = {2021}>} Customer)>} Amount)
이 집합 표현식은 이러한 고객을 선택하지만 선택을 2021년으로 제한하지 않습니다.
이러한 함수는 다른 표현식에는 사용할 수 없습니다.
또한 요소 집합 함수 내에서는 자연 집합만 사용할 수 있습니다. 즉, 간단한 선택으로 정의할 수 있는 레코드 집합입니다.
예를 들어 {1-$}로 지정된 집합은 선택을 통해 정의하지 못할 수도 있으므로 자연 집합이 아닙니다. 자연이 아닌 집합에서 이러한 함수를 사용하면 예기치 않은 결과가 반환됩니다.
예: 집합 함수를 사용하는 집합 수정자에 대한 차트 표현식
예 | 결과 |
---|---|
sum( {$<Customer = P({1<Product={'Shoe'}>} Customer)>} Sales ) |
'Shoe' 제품을 구매한 적이 있는 고객에 한해 현재 선택의 판매량을 반환합니다. 여기서 요소 함수 P( )는 Product 필드의 'Shoe' 선택으로 유추된 사용 가능한 고객 목록을 반환합니다. |
sum( {$<Customer = P({1<Product={'Shoe'}>})>} Sales ) |
위와 같습니다. 요소 함수의 필드가 생략된 경우 이 함수는 외부 할당에서 지정한 필드의 사용 가능한 값을 반환합니다. |
sum( {$<Customer = P({1<Product={'Shoe'}>} Supplier)>} Sales ) |
'Shoe' 제품을 공급한 적이 있는 고객에 한해 현재 선택의 판매량을 반환합니다. 즉, 고객도 공급자입니다. 여기서 요소 함수 P( )는 Product 필드의 'Shoe' 선택으로 유추된 사용 가능한 공급자 목록을 반환합니다. 이때 공급자 목록은 Customer 필드에서 선택 항목으로 사용됩니다. |
sum( {$<Customer = E({1<Product={'Shoe'}>})>} Sales ) |
'Shoe' 제품을 구매한 적이 없는 고객에 한해 현재 선택의 판매량을 반환합니다. 여기서 요소 함수 E( )는 Product 필드에서 'Shoe' 선택에 의해 제외된 고객 목록을 반환합니다. |