# FirstSortedValue Skriptfunktion

FirstSortedValue() gibt den Wert der in value festgelegten Formel zurück, der dem Ergebnis der Sortierung des sort\_weight-Arguments entspricht, z. B. der Name des Produkts mit dem niedrigsten Preis pro Einheit. Der n-te-Wert in der Sortierreihenfolge kann in rank festgelegt werden. Weist mehr als ein Ergebnis dasselbe Feld sort\_weight für die festgelegte Funktion rank auf, gibt die Funktion NULL zurück. Die sortierten Werte werden über eine Reihe von Datensätzen iteriert, wie von einer group by-Bedingung definiert, oder über einen kompletten Datensatz aggregiert, wenn keine group by-Bedingung definiert ist.

Syntax:

FirstSortedValue (FirstSortedValue ([ distinctdistinct ] value, sort-weight [, rank ] ] value, sort-weight [, rank ]))

Rückgabe Datentyp: dual

Argumente:

Argumente

| Argument | Beschreibung |
| --- | --- |
| value Expression | Die Funktion findet den Wert der Formel value, der dem Ergebnis der Sortierung von sort\_weight entspricht. |
| sort-weight Expression | Die Formel mit den Daten, die sortiert werden sollen. Der erste (niedrigste) Wert von sort\_weight wird gefunden, aus dem der entsprechende Wert der Formel value bestimmt wird. Wenn Sie ein Minuszeichen vor sort\_weight voranstellen, liefert die Funktion stattdessen den letzten (höchsten) sortierten Wert. |
| rank Expression | Durch rank "n" größer 1 wird der n-te Wert ausgegeben. |
| distinct | Der Zusatz DISTINCT vor den Funktionsargumenten bewirkt, dass bei der Auswertung der Funktionsargumente entstehende Duplikate nicht berücksichtigt werden. |

Beispiele und Ergebnisse:

Fügen Sie Ihrer Anwendung das Beispielskript hinzu und führen Sie dieses aus. Fügen Sie einem Arbeitsblatt in unserer Anwendung dann mindestens diejenigen Felder hinzu, die in der Ergebnisspalte aufgeführt sind, um das Ergebnis anzuzeigen.

Damit die Anzeige genauso wie in der unteren Ergebnisspalte aussieht, schalten Sie im Eigenschaftenfenster unter "Sortierung" von "Auto" auf "Benutzerdefiniert" um und heben Sie anschließend die numerische und alphabetische Sortierung auf.

Skriptbeispiele

| Beispiel | Ergebnis |
| --- | --- |
| `Temp:` `LOAD * inline [` `Customer\|Product\|OrderNumber\|UnitSales\|CustomerID` `Astrida\|AA\|1\|10\|1` `Astrida\|AA\|7\|18\|1` `Astrida\|BB\|4\|9\|1` `Astrida\|CC\|6\|2\|1` `Betacab\|AA\|5\|4\|2` `Betacab\|BB\|2\|5\|2` `Betacab\|DD\|12\|25\|2` `Canutility\|AA\|3\|8\|3` `Canutility\|CC\|13\|19\|3` `Divadip\|AA\|9\|16\|4` `Divadip\|AA\|10\|16\|4` `Divadip\|DD\|11\|10\|4` `] (delimiter is '\|');` ` ` `FirstSortedValue:` `LOAD  Customer,FirstSortedValue(Product, UnitSales) as MyProductWithSmallestOrderByCustomer Resident Temp Group By Customer;<br>` | ` Customer MyProductWithSmallestOrderByCustomer  ` `Astrida CC` `Betacab AA` `Canutility AA` `Divadip DD`<br><br>Die Funktion sortiert UnitSales von klein nach groß und sucht nach dem Wert von Customer mit dem kleinsten Wert von UnitSales, die kleinste Bestellung.<br><br>Da CC der kleinsten Bestellung (Wert von UnitSales= 2) für Kunde Astrida entspricht. AA entspricht der kleinsten Bestellung (4) für Kunde Betacab, AA entspricht der kleinsten Bestellung (8) für Kunde Canutility und DD der kleinsten Bestellung (10) für Kunde Divadip.. |
| Vorgabe: Die Tabelle Temp wird wie im vorherigen Beispiel geladen:<br><br>`LOAD  Customer,FirstSortedValue(Product, -UnitSales) as MyProductWithLargestOrderByCustomer Resident Temp Group By Customer;` | ` Customer MyProductWithLargestOrderByCustomer  ` `Astrida AA` `Betacab DD` `Canutility CC` `Divadip -`<br><br>Dem Argument sort\_weight geht ein Minuszeichen voran, weshalb die Funktion zuerst die größten Werte sortiert.<br><br>Da AA der größten Bestellung (Wert von UnitSales:18) für Kunde Astrida, DD der größten Bestellung (12) für Kunde Betacab und CC der größten Bestellung (13) für Kunde Canutility entspricht. Für die größte Bestellung (16) für Kunde Divadip gibt es zwei identische Werte, weshalb NULL ausgegeben wird. |
| Vorgabe: Die Tabelle Temp wird wie im vorherigen Beispiel geladen:<br><br>`LOAD  Customer,FirstSortedValue(distinct Product, -UnitSales) as MyProductWithSmallestOrderByCustomer Resident Temp Group By Customer;` | ` Customer MyProductWithLargestOrderByCustomer  ` `Astrida AA` `Betacab DD` `Canutility CC` `Divadip AA`<br><br>Dies entspricht dem vorigen Beispiel, außer dass der Zusatz distinct verwendet wird. Das führt dazu, dass das doppelte Ergebniss für Divadip ignoriert wird, wodurch ein Wert, der nicht gleich NULL ist, ausgegeben wird. |