Problem bei SQL-Abfrage

Hallo!

Ich stehe im Geschäft vor einem kleinen (für mich eher großem) Problem.
Ich würde gerne eine Abfrage auf dem Microsoft SQL-Server in SQL erstellen, die mir jeweils den ersten Datensatz einer Tabelle ausgibt. Dabei hat die Tabelle folgendes Aussehen:

Kundennummer Laufzeit Volumen
1 1 Tag 200
1 1 Woche 150
2 1 Tag 400
2 1 Woche 400
3 1 Tag 550
3 1 Woche 400

Nun muss Folgendes beachtet werden: Ich möchte mir jeweils für jede Kundennummer den Datensatz mit dem höchsten Volumen ausgeben lassen. Dabei kommt es bei Kundennummer 2 zu einem Problem, da hier das Volumen bei der Laufzeit 1 Tag und 1 Woche gleich groß ist. Kommt so etwas vor, soll immer der Datensatz ausgegeben werden, der die kürzeste Laufzeit hat. Das Ergebnis der SQL-Abfrage sollte daher lauten:

Kundennummer Laufzeit Volumen
1 1 Tag 200
2 1 Tag 400
3 1 Tag 550

Und das dann für beliebig viele Datensätze!
Wie programmiert man so etwas in SQL? Die Laufzeit ist bei mir nochmal numerisch codiert, d.h. 1 Tag ist mit 1, 1 Woche mit 2, usw. codiert.
Wäre super, wenn mir jemand bei diesem Problem helfen könnte.
Ich hocke da schon ein paar Stunden dran.

Vielen Dank für Eure Hilfe!

Gruß,

Andreas

Auch hallo.

…auch auf die Gefahr hin, dass der erste Versuch danebengeht :wink:

Ich würde gerne eine Abfrage auf dem Microsoft SQL-Server in

Welche Version ? 2000 oder 2005 ? Und welches Frontend ?

SQL erstellen, die mir jeweils den ersten Datensatz einer
Tabelle ausgibt. Dabei hat die Tabelle folgendes Aussehen:

> Kundennummer Laufzeit Volumen  
> 1 1 Tag 200  
> 1 1 Woche 150  
> 2 1 Tag 400  
> 2 1 Woche 400  
> 3 1 Tag 550  
> 3 1 Woche 400

Nun muss Folgendes beachtet werden: Ich möchte mir jeweils für
jede Kundennummer den Datensatz mit dem höchsten Volumen

…‚max‘

ausgeben lassen. Dabei kommt es bei Kundennummer 2 zu einem
Problem, da hier das Volumen bei der Laufzeit 1 Tag und 1
Woche gleich groß ist. Kommt so etwas vor, soll immer der
Datensatz ausgegeben werden, der die kürzeste Laufzeit hat.

Unterabfrage mit 'if Laufzeit = ‚1 Tag‘ konstruieren und diese in eine eigene (virtuelle) Tabelle setzen. Dort dann mit ‚select‘, ‚min‘ und ‚max‘ operieren.

Das Ergebnis der SQL-Abfrage sollte daher lauten:

Kundennummer Laufzeit Volumen
1 1 Tag 200
2 1 Tag 400
3 1 Tag 550

Und das dann für beliebig viele Datensätze!
Wie programmiert man so etwas in SQL? Die Laufzeit ist bei mir
nochmal numerisch codiert, d.h. 1 Tag ist mit 1, 1 Woche mit
2, usw. codiert.
Wäre super, wenn mir jemand bei diesem Problem helfen könnte.
Ich hocke da schon ein paar Stunden dran.

…okay, war auch hier nix mit Tabelle anlegen und abfragen :frowning:

Dennoch:
HTH
mfg M.L.

Hallo!

Danke für Deinen Versuch.
Irgendwie ziemlich kniffig, was?

Hallo nochmal.

Hallo!

Danke für Deinen Versuch.
Irgendwie ziemlich kniffig, was?

Erfreulicherweise nicht :smile:
Mit PHPMyAdmin, MySQL 4.x geht das ganz einfach:
http://mitglied.lycos.de/schachspielen/www_db_fertig…
http://mitglied.lycos.de/schachspielen/www_db_1tag.PNG
Man beachte das SQL Kommando, welches für SQL-Server nur noch modifiziert werden muss :wink:

HTH
mfg M.L.

***hier noch ein SQL Tutor (allerdings veraltend)***
http://www.schulserver.hessen.de/darmstadt/lichtenbe…