Set fonksiyonları kullanan set değiştiriciler
Bazen iç içe bir set tanımı kullanarak bir alan değerleri seti tanımlamanız gerekir. Örneğin, belirli bir ürünü satın almış olan tüm müşterileri, ürünü seçmeden seçmek isteyebilirsiniz.
Bu durumlarda, P() ve E() öğe seti işlevlerini kullanın. Bunlar sırasıyla bir alanda olabilecek değerleri ve alanın dışında tutulan değerleri döndürür. Köşeli parantezler içinde, söz konusu alanı ve kapsamı tanımlayan bir set ifadesini belirtebilirsiniz. Örneğin:
P({1<Year = {2021}>} Customer)
Bu, 2021'de işlem yapmış olan müşterilerin setini döndürür. Daha sonra bunu bir set değiştiricide kullanabilirsiniz. Örneğin:
Sum({<Customer = P({1<Year = {2021}>} Customer)>} Amount)
Bu set ifadesi bu müşterileri seçer, ancak seçimi 2021 ile sınırlamaz.
Bu fonksiyonlar diğer ifadelerde kullanılamaz.
Ek olarak, öğe seti fonksiyonlarının içinde yalnızca doğal setler kullanılabilir. Doğal kümeden kasıt, basit bir seçimle tanımlanabilen bir kayıt kümesidir.
Örneğin, {1-$} ile verilen set her zaman bir seçim yoluyla tanımlanamaz ve bu nedenle doğal bir set değildir. Bu fonksiyonları doğal olmayan setlerde kullanmak beklenmeyen sonuçlar döndürür.
Örnekler: Set fonksiyonları kullanan set değiştiriciler için grafik ifadeleri
Örnekler | Sonuçlar |
---|---|
sum( {$<Customer = P({1<Product={'Shoe'}>} Customer)>} Sales ) |
Geçerli seçim için satışları döndürür, ancak yalnızca daha önce 'Shoe' ürününü satın almış müşterileri içerir. Burada P( ) unsur fonksiyonu, Product alanında 'Shoe' seçimiyle örtük olarak belirtilen olası müşterilerin listesini döndürür. |
sum( {$<Customer = P({1<Product={'Shoe'}>})>} Sales ) |
Yukarıdaki ile aynı. Unsur fonksiyonundaki alan atlanırsa, fonksiyon, dış atamada belirtilen alanın olası değerlerini döndürür. |
sum( {$<Customer = P({1<Product={'Shoe'}>} Supplier)>} Sales ) |
Geçerli seçim için satışları döndürür ancak yalnızca daha önce 'Shoe' ürününü tedarik etmiş müşterileri, başka bir deyişle aynı zamanda tedarikçi olan müşterileri içerir. Burada P( ) unsur fonksiyonu, Product alanında 'Shoe' seçimiyle örtük olarak belirtilen olası tedarikçilerin listesini döndürür. Bu durumda, tedarikçi listesi, Customer alanında bir seçim olarak kullanılır. |
sum( {$<Customer = E({1<Product={'Shoe'}>})>} Sales ) |
Geçerli seçim için satışları döndürür, ancak yalnızca daha önce 'Shoe' ürününü hiç satın almamış müşterileri içerir. Burada E( ) unsur fonksiyonu, Product alanında 'Shoe' seçimiyle hariç tutulan, hariç tutulmuş müşterilerin listesini döndürür. |