Gå till huvudinnehåll Gå till ytterligare innehåll

Set-modifierare som använder set-funktioner

Ibland behöver du definiera en uppsättning fältvärden med hjälp av en nästlad set-definition. Till exempel kanske du vill välja alla kunder som har köpt en viss produkt, utan att välja produkten.

I sådana fall använder du elementuppsättningsfunktionerna P() och E(). Dessa returnerar elementuppsättningar med möjliga värden respektive uteslutna värden för ett fält. Inom parenteserna kan du ange fältet i fråga och ett set-uttryck som definierar omfattningen. Exempel:

P({1<Year = {2021}>} Customer)

Det returnerar uppsättningen med kunder som har haft transaktioner under 2021. Du kan använda det här i en set-modifierare. Exempel:

Sum({<Customer = P({1<Year = {2021}>} Customer)>} Amount)

Det här set-uttrycket kommer att välja dessa kunder men kommer inte att begränsa urvalet till 2021.

Dessa funktioner kan inte användas i andra uttryck.

Dessutom kan endast naturliga uppsättningar användas i elementuppsättningsfunktionerna. Det vill säga, en uppsättning med poster som definieras genom ett enkelt urval.

Till exempel kan den uppsättning som anges med {1-$} inte alltid definieras genom urval och det är därför inte en naturlig uppsättning. Användning av dessa funktioner med icke-naturliga uppsättningar returnerar oväntade resultat.

Exempel: Diagramuttryck för set-modifierare som använder set-funktioner

Exempel Resultat
sum( {$<Customer = P({1<Product={'Shoe'}>} Customer)>} Sales )

Returnerar försäljningen för det aktuella urvalet, men endast de kunder som någon gång har köpt produkten 'Shoe'. Elementfunktionen P( ) returnerar här en lista över möjliga kunder; de kunder som är inbegripna i urvalet 'Shoe' i fältet Product.

sum( {$<Customer = P({1<Product={'Shoe'}>})>} Sales )

Enligt ovan. Om fältet utelämnas i elementfunktionen returnerar funktionen de möjliga värdena för fältet som angetts i den yttre tilldelningen.

sum( {$<Customer = P({1<Product={'Shoe'}>} Supplier)>} Sales )

Returnerar försäljningen för det aktuella urvalet, men endast de kunder som någon gång har levererat produkten ”Shoe”, d.v.s. kunden är även leverantör. Elementfunktionen P( ) returnerar här en lista över möjliga leverantörer; de kunder som är inbegripna i urvalet ''Shoe'' i fältet Product. Listan över leverantörer används sedan som ett urval i fältet Customer.

sum( {$<Customer = E({1<Product={'Shoe'}>})>} Sales )

Returnerar försäljningen för det aktuella urvalet, men endast de kunder som aldrig har köpt produkten 'Shoe'. Elementfunktionen E() returnerar här en lista över uteslutna kunder; de kunder som valts bort i och med urvalet 'Shoe' i fältet Product.

Var den här sidan till hjälp för dig?

Om du stöter på några problem med den här sidan eller innehållet på den, t.ex. ett stavfel, ett saknat steg eller ett tekniskt fel – meddela oss!