ricardillo: der kleinste wert.

hallo an alle.

ich habe folgendes problem.

in ein datenbank habe ich 20 Einträge, davon selktiere ich die letzte 10 einträge. von diese 10 will ich die mit der kleinste wert einwählen.

um die 10 letzte einträge auszuwählen, habe ich folgende code.

$sqlzeile1 =
   "SELECT top 10
       End_zeit from Baken_Belegung
       Where Ofen_name = 'BAKE1' MIN(End_zeit)
        ORDER BY id DESC ";
$connect->dbSelect($sqlzeile1);
$last_inserted = $connect->werte;
$connect->show_data();

wie kann ich die kleinste wert auswählen. jemand hat mir gesagt villeich kann es mit MIN() laufen, aber wie soll ich es strukturieren.
Kann jemand mir helfen.

  1. Moin!

    SELECT Min(Wovon_der_kleinste?) usw...

    Förster

    1. mmmmmm...!

      so einfach geht das nicht wenn ich min() einfach so einfüge dan bekomme ich das kleinste wert von alle 20 einträge, aber ich brauche der kleinste von die 10 letzte.

  2. Hello ricaridillo,

    wie kann ich die kleinste wert auswählen. jemand hat mir gesagt villeich kann es mit MIN() laufen, aber wie soll ich es strukturieren.
    Kann jemand mir helfen.

    das hatte ich Dir schon in deinem Thread http://forum.de.selfhtml.org/archiv/2004/7/83863/#m490439

    speziell: http://forum.de.selfhtml.org/archiv/2004/7/83863/#m490485

    beantwortet. Wo hast Du noch Probleme?

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. hallo tom,

      vielen vielen dank, nun da gibs etwas , was ich nicht verstehe, was meinst du mit

      die zusätzliche Kenngröße aufgenommen werden:

      welche grosse meinst du, ich glaub ich kann kein wert festlegen denn ich werde ständig neue einträge machen, momentan sind 20 aber in ein paar tage werden vielleicht 100, und von diese 100 muss ich der kleinste End_zeit von die letzte 10 einträge.

      1. Hello,

        vielen vielen dank, nun da gibs etwas , was ich nicht verstehe, was meinst du mit

        die zusätzliche Kenngröße aufgenommen werden:

        welche grosse meinst du, ich glaub ich kann kein wert festlegen denn ich werde ständig neue einträge machen, momentan sind 20 aber in ein paar tage werden vielleicht 100, und von diese 100 muss ich der kleinste End_zeit von die letzte 10 einträge.

        Na, du willst doch das kleinste oder das größte Element haben von den 10 letzten. Dann musst Du natürlich auch wissen, wessen Größe Du abfragst. Die Größe der Pizza in cm oder die Größe der Zeit in Sekunden oder die Größe des erwärmten Getränks in Litern oder welche Größe suchst Du?

        Liebe Grüße aus http://www.braunschweig.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. ok ok

          die tabelle im DB sieht so aus

          ofen | stuck | start_zeit | end_zeit

          naturlich ich will das kleinste end_zeit von die letzte 10, die ich eingegeben habe.

          Ich dachte dass  mit

          SELECT top 11
                 End_zeit from

          hatte ich schon gesagt, vom welche elemant ich die werte haben wollte(end_zeit).

          trotzdem habe ich mein code so geändert.

          $sqlzeile1 =
             "SELECT top 11
                 End_zeit from Baken_Belegung
                 Where Ofen_name = 'BAKE1'
                 ORDER BY id DESC, End_zeit asc;";
          $connect->dbSelect($sqlzeile1);
          $last_inserted = $connect->werte;
          $connect->show_data();

          ich habe gedacht ich werde eine fehlermeldung bekommen, aber nä!!!!
          ich habe eine tabbelle mit die 10 letzte end_zeit bekommen

          1. Hallo!

            Jo ist schon ein nettes Problem. Ich weiss auch gar nicht, obs überhaupt ohne Temp_Table lösbar ist (*Offenbarung der Unwissenheit*).
            Numm doch einfach in PHP (or whatever) die 10. Ergebniszeile.

            Förster

            1. Hello,

              Hallo!

              Jo ist schon ein nettes Problem. Ich weiss auch gar nicht, obs überhaupt ohne Temp_Table lösbar ist (*Offenbarung der Unwissenheit*).
              Numm doch einfach in PHP (or whatever) die 10. Ergebniszeile.

              Man kann die Tabelle auch zweimal eröffnen und einen Join damit aufbauen. Ob das in MSSQL aber auch geht, weiß ich nicht. In MySQL und in Informix geht sowas problemlos. Ist eine Art Ersatz für Subselects.

              Liebe Grüße aus http://www.braunschweig.de

              Tom

              --
              Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
              Nur selber lernen macht schlau
              1. oje oje oje....

                und ich habe vor etwa 1 woche angefangen mit php u. sql zu arbeiten.

                ich glaube die lösung lieg irgend wo weit von meine jetzige kenntnisse.

                aber irgend wie werde ich es kriegen

              2. Servus

                Man kann die Tabelle auch zweimal eröffnen und einen Join damit aufbauen. Ob das in MSSQL aber auch geht, weiß ich nicht. In MySQL und in Informix geht sowas problemlos. Ist eine Art Ersatz für Subselects.

                Ich gehe mal stark davon aus das selbst MySql Self Joins kann ;-P. Aber inwiefern hilf das denn weiter?
                Kann ich auf die "TOP 10" "WHERE ORDER BY x DESC" einer gejointen Tabelle zugreiffen? Ich wüsste jetzt nicht wie man das macht.

            2. mmm das ist eine gute alternative, ich lasse die letzte 10 werte gilten, und mit php sage ich "zeige mir das kleinste von diese 10".

              oder ich kann auch mit sql der letzte eintrag, der vorletzte, der vorvorletzte... bis 10 insgesamt, und danach alle mit der aktuelle zeit vergleichen, und der der grosste unterschied hat ist dann logischer weise das kleinste wert.

              jetzt dann nur eine kleine frage,ich habe im DB zahl=1,2,3,4,5. mit MIN bekomme ich das kleinste wert, in diese fall 1, wie bekomme ich das 2, bzw 3.

              1. oder ich kann auch mit sql der letzte eintrag, der vorletzte, der vorvorletzte... bis 10 insgesamt, und danach alle mit der aktuelle zeit vergleichen, und der der grosste unterschied hat ist dann logischer weise das kleinste wert.

                Ich würde da überhaupt nichts vergleichen. Schon mal was von schleifen gehört. Zähle doch einfach aus, wieviele Datensätze du jeweils ausgelesen hast, bei 10 ist dann Schluß. Vielleicht kann der von dir eingesetzt Datenbanktreiber ja auch gleich an die 10. Stelle der Ergebnismenge springen.

                jetzt dann nur eine kleine frage,ich habe im DB zahl=1,2,3,4,5. mit MIN bekomme ich das kleinste wert, in diese fall 1, wie bekomme ich das 2, bzw 3.

                Ich wüsste nicht, dass es dafür eine Funktion gibt. Da musst du wohl selber eine Funktion schreiben (Stored Procedure), wenn du das innerhalb der Datenbank lösen möchtest.

                1. mmmm,

                  ok ich werde mal schauen!!