FirstSortedValue  - funzione per grafici
                FirstSortedValue() restituisce il valore dell’espressione specificata in value che corrisponde al risultato della classificazione dell’argomento a sort_weight, ad esempio, il nome del prodotto con il prezzo unitario più basso. Il valore n nell’ordine di classificazione può essere specificato in rank. Se più valori risultanti condividono lo stesso sort_weight per il rank specificato, la funzione restituisce NULL.
Sintassi:
FirstSortedValue([{SetExpression}] [DISTINCT] [TOTAL [<fld {,fld}>]] value, sort_weight [,rank])
Tipo di dati restituiti: duale
Argomenti:
| Argomento | Descrizione | 
|---|---|
| value | Campo di output. La funzione trova il valore dell’espressione value che corrisponde al risultato della classificazione di sort_weight. | 
| sort_weight | 
                                 Campo di input. L'espressione contenente i dati da ordinare. Viene trovato il primo valore (il più basso) di sort_weight dal quale viene determinato il valore corrispondente dell'espressione value. Inserendo un segno meno davanti a sort_weight, la funzione restituisce invece l'ultimo valore ordinato (il più elevato).  | 
                        
| rank | 
                                 Dichiarando un valore "n" di rank maggiore di 1, si otterrà il valore n-esimo nell'ordine.  | 
                        
| SetExpression | Per impostazione predefinita, la funzione di aggregazione aggrega la serie di possibili record definiti dalla selezione. È possibile definire una serie di record alternativa mediante un'espressione Set Analysis. | 
| DISTINCT | Se la parola DISTINCT è riportata prima degli argomenti della funzione, i duplicati risultanti dalla valutazione degli argomenti della funzione vengono ignorati. | 
| TOTAL | 
                                 Se la parola TOTAL viene riportata prima degli argomenti della funzione, il calcolo verrà effettuato su tutti i valori possibili dati dalle selezioni correnti e non solo su quelli relativi al valore dimensionale attuale, vale a dire che verranno ignorate le dimensioni del grafico. Utilizzando TOTAL [<fld {.fld}>], dove il qualificatore TOTAL è seguito da un elenco di uno o più nomi di campo come sottogruppo delle variabili di dimensione del grafico, si crea un sottogruppo di tutti i valori possibili.  | 
                        
Esempi e risultati:
| Customer | Product | UnitSales | UnitPrice | 
|---|---|---|---|
| Astrida | AA | 4 | 16 | 
| Astrida | AA | 10 | 15 | 
| Astrida | BB | 9 | 9 | 
| Betacab | BB | 5 | 10 | 
| Betacab | CC | 2 | 20 | 
| Betacab | DD | - | 25 | 
| Canutility | AA | 8 | 15 | 
| Canutility | CC | - | 19 | 
| Esempio | Risultato | 
|---|---|
| firstsortedvalue (Product, UnitPrice) | 
                                 BB, che corrisponde al Product con l'UnitPrice più basso (9).  | 
                        
| firstsortedvalue (Product, UnitPrice, 2) | 
                                 BB, che corrisponde al Product con il secondo UnitPrice più basso (10).  | 
                        
| firstsortedvalue (Customer, -UnitPrice, 2) | 
                                 Betacab, che corrisponde al Customer con il Product con il secondo UnitPrice più elevato (20).  | 
                        
| firstsortedvalue (Customer, UnitPrice, 3) | 
                                 NULL, perché vi sono due valori di Customer (Astrida e Canutility) con lo stesso valore rank (terzo più basso) UnitPrice (15). Usare il qualificatore distinct per accertarsi che non insorgano risultati null.  | 
                        
| firstsortedvalue (Customer, -UnitPrice*UnitSales, 2) | 
                                 Canutility, che corrisponde all'elemento Customer con il secondo valore di ordinamento delle vendite più elevato UnitPrice moltiplicato per UnitSales (120).  | 
                        
Dati utilizzati negli esempi:
ProductData:
LOAD * inline [
Customer|Product|UnitSales|UnitPrice
Astrida|AA|4|16
Astrida|AA|10|15
Astrida|BB|9|9
Betacab|BB|5|10
Betacab|CC|2|20
Betacab|DD||25
Canutility|AA|8|15
Canutility|CC||19
] (delimiter is '|');