Daniela Koller: (mysql) Abfrage mit berechneten Werten

Beitrag lesen

Hi Susanne

sollte DIch Deinem Ziel zumindest etwas näher bringen.
tut es, jetzt kann ich immerhin schon mal eine nach Restlaufzeit sortierte Liste bekommen

und wenn du mit having arbeitest kannst du auch filtern wie du willst

Dafür brauchst du noch einen Group by c.cassName, c.cassLaenge
den brauchst du allerdings eh für die sum Funktion.

Deine Query sähe also so aus: Select c.cassName, c.cassLaenge, (c.cassLaenge - sum(a.laenge)) as restzeit
                               Group By c.cassName, c.cassLaenge
                               Having restzeit > was du willst

Ob erst Group By oder Having weis ich nicht mehr auswändig, deswegen bitte
rasch probieren und wenns n Syntaxfehler gibt drehen.

Das ganze hat glaub ich allerdings ein Problem, es setzt voraus das
die einzelnen Stücke nahtlos aneinander passen, sobald eine Pause
dazwischen ist wird die nicht berücksichtigt.

SELECT c.cassName,  c.cassLaenge,  (c.cassLaenge - SUM(a.laenge)) AS restzeit FROM aufnahme a, cass c WHERE  c.cassID = a.cassID GROUP BY c.cassName, c.cassLaenge ORDER BY restzeit DESC

"Unterabfrage" gibt mir da doch mal wieder ein Stichwort zum Weitersuchen. Guido Stepken behauptet doch in seinem Mysql-Handbuch das sich subselects ganz einfach durch self-joins ersetzen lassen.
Das muss ich jetzt nur noch verstehen. ;-)

Schön wäre es wenns so einfach ist, gerade bei deiner Anwendung ist es
sehr schwer und je nach Anwendungsfall (deiner sieht danach aus, zumindest
ist mir noch nichts eingefallen, heisst aber nicht viel) sogar unmöglich.

Gruss Daniela