Stefan: Zeile mit dem kleinsten Wert ausgeben

Hallo,

hat jemand eine Idee wie man bei einer Tabelle à la

Diff   Wert
0      12
1      34
3.8    34
2      78
1.5    42

die Zeile bekommt, bei der Diff am kleinsten ist?

Bei select min(diff), wert from ... muss ich ja eine group by wert klausel angeben, was wieder eine Tabelle mit 5 Werten ergibt.

Danke + Viele Grüße

Stefan

  1. Hallo,

    du kannst das mit Unterabfragen lösen, allerdings hängt die Verfügbarkeit des Features "Unterabfragen" (engl: sub query) von dem von dir verwendeten Datenbanksystem ab.

    Für MS SQL 2000/2005, MySQL 5 geht z.b. folgendes:

      
    SELECT Diff, Wert  
    FROM tabelleX  
    WHERE Diff =  
       (SELECT MIN(Diff)  
        FROM tabelleX)  
    
    

    Ciao, Frank

    1. Hi,

      danke für die schnelle Antwort!
      Ich benutze Oracle SQL, das Subqueries dieser Art leider nicht zulässt.

      1. yo,

        Ich benutze Oracle SQL, das Subqueries dieser Art leider nicht zulässt.

        oracle kann solche unterabfragen ausführen.

        Ilja

        1. Hi,

          wenn ich das Statement auf diese Weise umschreibe kommt folgende Fehlermeldung: ORA-00934: Gruppenfunktion hier nicht zulässig.

          Danke + Grüße

          1. yo,

            wenn ich das Statement auf diese Weise umschreibe kommt folgende Fehlermeldung: ORA-00934: Gruppenfunktion hier nicht zulässig.

            dann wohl dadurch, dass du den beiden gleichnamigen tabellen mal einen aliasnamen verpassen solltest. nicht desto trotz kann oracle schon seit urzeiten unterabfragen.

            Ilja