跳到主要內容 跳至補充內容

使用集合函數的集合修飾詞

有時候您需要使用巢狀集合定義來定義欄位值集合。例如,您可能希望選取已購買特定產品的所有客戶,而不選取該產品。

在這類情況下,使用元素集函數 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」產品的客戶。元素函數 P( ) 在此會傳回已排除客戶的清單,亦即以欄位 Product 中選項為「Shoe」所排除的客戶。

此頁面是否對您有幫助?

若您發現此頁面或其內容有任何問題——錯字、遺漏步驟或技術錯誤——請告知我們可以如何改善!