Frank: MySql: Berechnung in Abfrage mit AS in anderer Berechnung

Hi @all,

"SELECT month(datum) AS monat , year(datum) AS Jahr, concat(Jahr, "000", Monat) FROM tabelle"

wenn ich das ausführe bekomme ich die Fehlermeldung "Unknown Column Jahr".

Wie kann ich ein Feld das mit as erstellt worden ist, noch in der Select Anweisung ansprechen?  in access würde es so gehen.

das concat und die abfrage ist nur ein beispiel.

schönen tag
Frank

  1. Hallo

    "SELECT month(datum) AS monat , year(datum) AS Jahr, concat(Jahr, "000", Monat) FROM tabelle"
    wenn ich das ausführe bekomme ich die Fehlermeldung "Unknown Column Jahr".

    das ist zu erwarten, so steht es im Handbuch.

    Wie kann ich ein Feld das mit as erstellt worden ist, noch in der Select Anweisung ansprechen?

    In der Spaltenliste: Gar nicht, da ist kein "Feld erstellt" worden. Verwende den gleichen Ausdruck. Du könntest ein Subselect verwenden, dabei solltest Du darauf achten, was EXPLAIN dazu meint.

    in access würde es so gehen.

    Andere SQL-Dialekte, andere Stärken und andere Schwächen.

    Freundliche Grüße

    Vinzenz

    1. Hi Vinzenz,

      vielen Dank für deine Hilfe.

      "SELECT monat, Jahr, concat(Jahr, "000", Monat) FROM (SELECT month(datum) AS monat , year(datum) AS Jahr FROM tabelle)"

      Das gibts doch nicht, diese Abfrage ist doch viel zu lange , dafür das es nur eine kleine ist, was mach ich denn wenn ich wirklich größere schreiben möchte?! bzw. wie soll ich die dann noch bearbeiten?

      Gibts nicht ein Äquivalent zu AS ? Define vielleicht?

      Viele Grüße

      Hallo

      "SELECT month(datum) AS monat , year(datum) AS Jahr, concat(Jahr, "000", Monat) FROM tabelle"
      wenn ich das ausführe bekomme ich die Fehlermeldung "Unknown Column Jahr".

      das ist zu erwarten, so steht es im Handbuch.

      Wie kann ich ein Feld das mit as erstellt worden ist, noch in der Select Anweisung ansprechen?

      In der Spaltenliste: Gar nicht, da ist kein "Feld erstellt" worden. Verwende den gleichen Ausdruck. Du könntest ein Subselect verwenden, dabei solltest Du darauf achten, was EXPLAIN dazu meint.

      in access würde es so gehen.

      Andere SQL-Dialekte, andere Stärken und andere Schwächen.

      Freundliche Grüße

      Vinzenz