Aggregat-SQL-Funktion, um nur die erste von jeder Gruppe zu erfassen

Ich habe 2 Tabellen, eine Tabelle und eine Tabelle Users. Jeder account kann mehrere Benutzer. Ich habe ein Szenario, wo ich ausführen möchten, eine einzige query/join gegen diese beiden Tabellen, aber ich möchte, dass alle Kontodaten (Konto.*) und nur die ersten von user-Daten (insbesondere Ihren Namen).

Anstatt das zu tun, "min" oder "max" auf meinem aggregierten Gruppe, die ich tun wollte "ersten". Aber anscheinend gibt es keinen "Ersten" Aggregat-Funktion in TSQL.

Irgendwelche Vorschläge auf, wie man über die erste dieser Abfrage? Natürlich ist es einfach, um das kartesische Produkt von Konto x-Benutzer:

 SELECT User.Name, Account.* FROM Account, User
 WHERE Account.ID = User.Account_ID

Aber wie könnte ich ungefähr immer nur der erste user von dem Produkt, basierend auf der Reihenfolge Ihrer Benutzer.ID ?

InformationsquelleAutor der Frage Matt | 2009-04-21

Schreibe einen Kommentar