Zeile mit dem größten Wert einer Spalte x anzeigen

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

  • Zeile mit dem größten Wert einer Spalte x anzeigen

    Hallöchen, mal wieder ein neues "Problem":

    Ich habe eine Tabelle mit Einträgen - wobei ein Eintrag mehrere Untereinträge haben kann -
    sprich ich habe "lfd_nr" für die Einträge an sich (1, 2, 3,...) und eine
    "his_nr" für die "History" (1, 2, 3,...) sodass ein Eintrag nachher eben mit "1.1, 1.2, 1.3, 2.1, 2.2 usw..." gekennzeichnet ist.

    Wenn ich in einem Pulldownmenü, welches hier mit case/break Funktion erzeugt und aufgerufen wird einen bestimmten Punkt anklicke (Hier: case1), möchte ich dass er die Funktion so aufruft wie im QT beschrieben - aber mir NUR den Eintrag der lfd_nr anzeigt, mit der HÖCHSTEN his_nr.

    Soweit - so gut. Jetzt werden alle schreien: MAX(spalte) - das ist zwar richtig, ABER:

    MAX geht ja nur in Verbindung mit "select max()..." - wo also soll ich die Funktion mit MAX die ja nur für "case1" gelten soll in der Auswahl unterbringen? Wenn ich sie bei $sort oder $sql unterbringe verwurschdel ich mir ja alle anderen Einträge ... wenn ich eine neue Variable, bspw. $sort2 anlege - wie bring ich die unter dass case1 weiss dass $sort2 für sie zuständig ist?

    Hier noch der relevante Teil des Quelltextes:

    PHP-Code:
    if( isset($_POST['where']) )
    {
        switch(
    $_POST['where'])
        {
            case 
    0:
                
    $where_1 'selected="selected"';
                break;
            case 
    1:
                
    $where 'where fort<>100 and a_dat = ""';
                
    $where_2 'selected="selected"';
                break;
            case 
    2:
                
    $where 'where fort=100 and a_dat<>"" ';
                
    $where_3 'selected="selected"';
                break;
        }
    }
    $sort "order by lfd_nr DESC";
    $sql "SELECT distinct lfd_nr FROM eintraege $where"

  • #2
    ich verstehe Dein Problem mit MAX() nicht, aber Du kannst ja auch ORDER BY mit LIMIT 1 verwenden, wenn Dir das leichter fällt....
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Original geschrieben von MelloPie
      ich verstehe Dein Problem mit MAX() nicht, aber Du kannst ja auch ORDER BY mit LIMIT 1 verwenden, wenn Dir das leichter fällt....
      Das Problem ist, dass ich nicht weiss wo und wie ich MAX() einfügen muss.

      Analog dazu weiss ich auch nicht wo bzw. wie ich ORDER BY ... LIMIT 1 einsetzen müsste :-)

      Kommentar


      • #4
        analog dazu empfehle ich Dir mal im Manual nachzulesen, wie Du verschiedene Sprachkonstrukte einsetzt.
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          Original geschrieben von MelloPie
          analog dazu empfehle ich Dir mal im Manual nachzulesen, wie Du verschiedene Sprachkonstrukte einsetzt.
          Falls noch jemand so tolle Tips hat wie RTFM möge er sie bitte für sich behalten. Wenn ich damit weiterkommen würde, bräuchte ich hier nicht zu posten. Falls mir also jemand wirklich versuchen will weiterzuhelfen bin ich für jeden Tip dankbar.

          Kommentar


          • #6
            Um ehrlich zu sein hab ich die Problemstellung nicht ganz verstanden aber würde dir ein Subselect nicht weiterhelfen?

            PHP-Code:
            $where "where fort IN('SELECT MAX(fort) as f FROM table WHERE fort<>100 and a_dat = ""'); 
            Note: 'Anführungszeichen sind vielleicht nciht richtig gesetzt'
            Lurchi ! Lurchi ! Lurchi !

            Kommentar


            • #7
              @Lavingstar
              Dir gehts wohl nicht gut.....

              Dein Vorhaben scheint der ersten Normal Form zu wiedersprechen. Also kannst du keine Hilfe bei der Problemoptimierung erwarten.
              Lesen: Die 5 Normal Formen

              Vorschlag:
              Bau die Sache rekursiv auf, oder verwende NestedSets.
              Wir werden alle sterben

              Kommentar


              • #8
                @combie: [COLOR=red]6 - setzen![/COLOR]
                Absolut unfähig und unangebracht. Wenn du keine Ahnung hast und nicht weiterhelfen kannst, halte dich doch einfach geschlossen!

                @Anbu: Vielen Dank - damit hats funktioniert!! Dein Lösungsansatz hat mir weitergeholfen und mit ein wenig umstellen läufts jetzt prima, dankeschön!

                Kommentar

                Lädt...
                X