Abfrage in Where-Klausel ? Geht das ?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Abfrage in Where-Klausel ? Geht das ?

    Hallo Forum!

    Ich habe mal wieder ein Problem!

    Ich habe eine Tabelle mit Preisinformationen bestimmter Dinge.
    In einer Spalte steht der Preis und in einer anderen Spalte die Währung.

    Preis-Spalte: 10000.00,15000.00,1200.00,.....
    Währungsspalte: EUR, Dollar, usw...

    So weit so gut....

    Nun habe ich eine Abfrage auf diese Tabelle bei der ich auf die Preisspalte abfrage

    Code:
    Select preis, usw from Ware where Preis >= 10000
    Nun möchte ich das der Benutzer die Währung angibt und den Minimalpreis nach dem er suchen will....

    Dabei soll die DB alle Preise zurückliefern die wirklich z.B. mehr kosten als 10000 EUR! Also auch z.B. 15000 Dollar aber nicht 11000 Dollar (Kurs also mit einbeziehen: 11000 Dollar < 10000 EUR)

    Also heisst das für mich doch eigentlich das ich eine Abfrage in meine Where-Klausel einbinden muss die die Währung umrechnen muss, oder geht das gar nicht in der Where-Klausel ?

    Also so ungefähr:

    Code:
    Select Preis, usw from Ware where (if waehrung = 'EUR' then preis >= 10000 else preis / 1.xx >= 10000
    Ich hoffe Ihr versteht was ich meine........

    Und noch mehr hoffe ich das dies mir jemand erklären kann ob es geht und wenn ja wie.......denn ich habe es grade ausprobiert aber leider scheint das nicht zu funzen...

  • #2
    Du könntest dir eine weitere Tabelle basteln, in der du den Umrechnungskurs jeder Währung (auch EUR) in EUR definierst.

    Diese Tabelle baust du dann mit einem JOIN (siehe sticky thread hier) in die Abfrage mit ein
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Du musst erst die Währung feststellen und daraus den Umrechnugsfaktor ermitteln. Dann sollte es so gehen:
      Code:
      Select preis from ware where preis >= Umrechnungsfaktor * preis_in_anderer_währung
      Nicht getestet aber so in der Art sollte es funzen.

      Gruss

      tobi
      Zuletzt geändert von jahlives; 21.06.2005, 18:13.
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Die Währung ist festgelegt auf EURO.
        Also muss ich nur die andere Währung in EURO umrechnen lassen.

        z.B. habe ich in der Tabelle die Preise so:

        Preisspalte | Währung
        10000.00 | EUR
        11500.00 | Dollar
        9000.00 | EUR
        12500.00 | Dollar

        usw....


        Wenn ich nun alle Preise die über 10000.00 EUR sind haben will muss ich ja aus den Dollars Euros umrechnen lassen.

        Das kann ich aber nur in der 'Where-Klausel' machen, ist ja logisch.
        Nur wie soll ich das machen ? Kann man Abfragen in einer Where-Klausel haben ?
        Ich kenne es nur in der Select-Klausel:

        Code:
        Select if(...) then (..) else (..), usw... from Tabelle where....
        ich benötige dies aber in der Where-Klausel:

        Code:
        Select Preis, usw... from Tabelle where if(waehrung = 'EUR') then (..) else (*UMRECHUNG der Dollar-Datensätze*)....

        Kommentar


        • #5
          Schon versucht?

          "In the WHERE clause, you can use any of the functions that MySQL supports, except for aggregate (summary) functions. See Chapter 12, Functions and Operators."
          (See mal lieber direkt Chapter 12.2, da steht was über IF.)

          Kommentar


          • #6
            Ha ja, klappt wunderbar!

            Ich werde in Zukunft nicht mehr abstrakte Theorien durchkauen sondern ersteinmal ausprobieren bevor ich frage!

            Danke!

            Kommentar

            Lädt...
            X