Chris: Rechnen in der WHERE Klausel ? MySQL

Hallo zusammen,

ich bastell gerade an einer Abfrage (MySQL), die mir aus meiner Datenbank die das tatsächlich günstigste Aangebot ermitteln soll.

Die Preise sind einmal mit Einrichtungsgebühren versehen und den monatlich laufenden Kosten.

Um dem Interessent das Leben einfacher zu machen errechne ich die Kosten des Angebotes für 1 Jahr, um so eine durchschaubare Übersicht zu erschafen.

Wenn ich die Abfrage so gestallte:

SELECT (angebote.monat*12)+angebote.einricht AS Jahr ...

klappt alles Prima.

Nun möchte ich aber gleich in der WHERE Klausel festlegen das er nur die Angebote ermittelt die einen bestimmten max. Gesammtpreis nicht überschreiten.

SELECT (angebote.monat*12)+angebote.einricht AS Jahr FROM angebote WHERE Jahr <= 100

geht leider so nicht weil die Spalte Jahr natürlich nicht existiert.

SELECT (angebote.monat*12)+angebote.einricht AS Jahr FROM angebote WHERE (angebote.monat*12)+angebote.einricht <= 100

hier gibt es keinen Fehler, aber er gibt mir auch kein Resultat zurück.

Leider finde ich keine Lösung für mein Problem.

Hat jemand von euch vieleicht einen Tipp wie ich das hinbekommen kann ?

Viele Grüße und danke,

Chris

  1. SELECT (angebote.monat*12)+angebote.einricht AS Jahr FROM angebote GROUP BY Jahr HAVING Jahr < 101

    geht das nicht?

    Grüße, Matthias

    1. Hallo,

      SELECT (angebote.monat*12)+angebote.einricht AS Jahr FROM angebote GROUP BY Jahr HAVING Jahr < 101
      geht das nicht?

      Laut Handbuch kann MySQL das, siehe http://dev.mysql.com/doc/mysql/en/Problems_with_alias.html. Die Handbuchseite weist auch darauf hin, warum es in WHERE nicht möglich ist.

      Rechnen in der WHERE-Klausel sollte allerdings möglich sein.

      Freundliche Grüsse,

      Vinzenz

      1. yo,

        SELECT (angebote.monat*12)+angebote.einricht AS Jahr FROM angebote GROUP BY Jahr HAVING Jahr < 101
        geht das nicht?

        Laut Handbuch kann MySQL das, siehe http://dev.mysql.com/doc/mysql/en/Problems_with_alias.html. Die Handbuchseite weist auch darauf hin, warum es in WHERE nicht möglich ist.

        ich sehe keine where klausel....

        Ilja

        1. Hallo Ilja,

          ich sehe keine where klausel....

          ... die hatte ich schon rausgekürzt. Im Ausgangsposting war die noch da https://forum.selfhtml.org/?t=91558&m=550846 :-)
          Mein Satz bezog sich auf den Threadtitel "Rechnen in der WHERE Klausel ? MySQL" [1]

          Soweit ich weiß, geht das prinzipiell.

          Freundliche Grüsse,

          Vinzenz

          [1] Zitat
              Keine Verantwortung für fehlende Bindestriche und überflüssige Leerzeichen :-)

          1. Hallo,

            ich sehe keine where klausel....

            Soweit ich weiß, geht das prinzipiell.

            Berechnungen in der WHERE Klausel funktionieren, ich hatte gestern einen kleinen Tipper in meiner Abfrage, daher hatte ich kein Resultat.

            Danke für eure Hilfe,

            Chris

    2. Hallo,

      .. HAVING Jahr < 101

      Having klappt Prima, danke.

      Grüße,

      Chris