Forums Neueste Beiträge
 

Newbie: GROUP BY und Aggregatfunktion first(meinfeld)

11/12/2007 - 17:29 von arno | Report spam
Hallo,

angenommen ich habe eine einzige Datentabelle, in der zu allen Codes ein
Feld mit der Bezeichnung vorhanden ist, die Bezeichnung muss aber nicht
eindeutig sein (es kann also mehrere Bezeichnungen für einen Code geben).

Bisher - also mit Access 2000, 2003 habe ich mir bei den gruppierten
Abfragen so beholfen und das lieferte auch das gewünschte Ergebnis:

select Code, FIRST(codebedzeichnung) as Bez, sum(Betragsfeld)
from bewegungsdaten
group by code

Nun habe ich meine Datenbank auf SQL-Server 2000 umgestellt und stelle mit
Entsetzen fest, dass die Funktion "First" für Gruppierungen nicht existiert.
Wie komme ich nun zu meiner Bezeichnung - wobei diese ja nicht eindeutig ist
(und auch nicht sein muss)?

Die Summe muss aber unbedingt für jeden Code erzeugt werden, ein "group by
code, codebezeichnung" geht daher nicht. (Das würde aber funktionieren, wenn
die Bezeichnung eindeutig wàre).

Wie kann ich aus meinen Bewegungsdaten eine Stammdatentabelle erzeugen, in
der jeder Code nur einmal vorkommt und eine Bezeichnung hat?

Viele Grüsse

arno
 

Lesen sie die antworten

#1 Frank Kalis
11/12/2007 - 17:56 | Warnen spam
"arno" wrote:

angenommen ich habe eine einzige Datentabelle, in der zu allen Codes ein
Feld mit der Bezeichnung vorhanden ist, die Bezeichnung muss aber nicht
eindeutig sein (es kann also mehrere Bezeichnungen für einen Code geben).

Bisher - also mit Access 2000, 2003 habe ich mir bei den gruppierten
Abfragen so beholfen und das lieferte auch das gewünschte Ergebnis:

select Code, FIRST(codebedzeichnung) as Bez, sum(Betragsfeld)
from bewegungsdaten
group by code

Nun habe ich meine Datenbank auf SQL-Server 2000 umgestellt und stelle mit
Entsetzen fest, dass die Funktion "First" für Gruppierungen nicht existiert.
Wie komme ich nun zu meiner Bezeichnung - wobei diese ja nicht eindeutig ist
(und auch nicht sein muss)?

Die Summe muss aber unbedingt für jeden Code erzeugt werden, ein "group by
code, codebezeichnung" geht daher nicht. (Das würde aber funktionieren, wenn
die Bezeichnung eindeutig wàre).

Wie kann ich aus meinen Bewegungsdaten eine Stammdatentabelle erzeugen, in
der jeder Code nur einmal vorkommt und eine Bezeichnung hat?




Schau mal hier rein:
http://www.insidesql.de/beitraege/a...t_sql.html
Frank Kalis
Microsoft SQL Server MVP
Webmaster: http://www.insidesql.de

Ähnliche fragen