MySQL berechnete Spalte im selben query weiterverwenden?

  • Themenstarter Themenstarter RektorSkinner
  • Beginndatum Beginndatum
R

RektorSkinner

Gast
Hallo,

ist es möglich eine berechnete Spalte im selben query für weitere Berechnungen zu verwenden?

In etwa so:

SQL:
SELECT A.a + A.b AS ab, ab + A.c AS abc FROM A

Auf diese Weise kriege ich die Fehlermeldung: #1054 - Unknown column 'ab' in 'field list'.

Bei einer simplen Berechnung wie in diesem Beispiel wäre es kein Problem die zweite Spalte im ganzen zu berechnen also A.a + A.b + A.c. Wenn es jedoch komplizierter wird wäre das ganze doch recht fehleranfällig.

Danke im Vorraus
 
Die auswertungsreihenfolge von SQL-Befehlen ist: FROM, WHERE, GROUP BY, SELECT, HAVING, ORDER BY. Die Variable ab ist erst bekannt wenn der KOMPLETTE select abgeschlossen ist.

Lösen könntest du das ganze mit Subselects. Denn die werden von SQL als erstes ausgewertet. Also den Wert AB mit einem Subselect berechnen dann steht er im Hauptselect zur verfügung!
 
Erstmal danke für deine Antwort.

Ich habe das ganze jetzt mit Hilfe eines Views, der AB berechnet, gelöst.

Wie gesagt mein eingentlicher Query ist einiges komplizierter als mein Beispiel von oben und der errechnete Wert ist auch an anderen Stellen recht nützlich für mich, daher ist ein View warscheinlich die geschicktere Lösung.

Trotzdem danke, deine Lösung wird mir an anderer Stelle sicher auch weiterhelfen.
 
Also vielleicht verfehle ich jetzt hier das Thema, aber ich frage mich gerade warum. Sinnvoll ist das ganze in einer Logik mit Subselects, wie schon am Anfang beschrieben. Es ist für mich jedoch nicht ganz einleuchtend, da wir uns hier doch eigentlich in der Anbindung an Datenbanken aus der Sicht von Java befinden!? Wenn ich von dieser Grundlage ausgehe, dann lese ich den Wert a,b,c in Variablen in einer Klasse und rechne danach aus, was ich möchte...
 

Neue Themen


Zurück
Oben