Ankündigung

Einklappen
Keine Ankündigung bisher.

Abfrage mit Max klappt nicht

Einklappen

Neue Werbung 2019

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

  • Abfrage mit Max klappt nicht

    Hallo Leute, ich komme nicht dahinter was der Fehler ist. Ich habe auch schon durch Googel einiges gefunden und genau eine solche Syntax gefunden wie ich sie hab.

    Ok kurz mein Ziel erklärt, ich habe eine Tabelle wo Datensätze drin sind mit einer Kunden Nummer. Nun können meherere Datensätze mit der gleichen Kundennummer drin sein. Ich brauche aber nur den Datensatz der die höchste Rechnungsnummer hat, in momentanen Fall muss die 2 ausgegeben werden. Leider jedoch wird bei mir nur die 1 ausgegeben.

    Hier meine Code.

    PHP-Code:
    $selectRechnungen ="
                                Select
                                    MAX('rechnungs_nummer'),
                                    id_rechnung,
                                    kunden_nummer,
                                    rechnungs_nummer
                                From
                                   tabelle
                                Where
                                    kunden_nummer =1569743
                                Group By
                                    kunden_nummer
                                "
    ;
            
    $selectRechnungenQuery $dbHandle->DbQuery($selectRechnungen);
            
            
    $selectRechnungenFetch $dbHandle->DbFetch($selectRechnungenQuery);
            
            
    //hier muss eigentlich ne 2 raus kommen aber es kommt nur eine 1 raus
            
    echo $selectRechnungenFetch['rechnungs_nummer']; 
    Wisst ihr vieleicht was ich da noch falsch mache?

    Vielen dank für eure Hilfe Mfg litter
    Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
    http://www.lit-web.de


  • #2
    Probiert mal so..

    Code:
    SELECT MAX(rechnungs_nummer),
           MAX(id_rechnung),
           kunden_nummer
    FROM   tabelle
    WHERE  kunden_nummer = 1569743
    GROUP  BY kunden_nummer

    Grüße
    Thomas

    Kommentar


    • #3
      Select
      MAX('rechnungs_nummer'),
      id_rechnung,
      kunden_nummer,
      rechnungs_nummer
      From
      tabelle
      Where
      kunden_nummer =1569743
      Group By
      kunden_nummer
      Macht aus mehreren Gründen keinen Sinn.
      1.) rechnungs_nummer gehören nicht in ' sondern wenn dann in backticks, da her kommt wahrscheinlich auch die 1
      2.) Du hast die Kundennummer im Where- teil warum gruppierst Du dann nach kundennummer? es gibt eh nur eine
      3.) rechnungs_nummer brauchst Du auch nicht, da Du ja das max(rechnungs_nummer) willst, im gegebenen query würde eine willkürliche nummer ausgespuckt werden
      4.) rechnungs_id muss nicht unbedingt die rechnungs_id der gefundenen Rechungsnummer sein, da kein eindeutiges query vorliegt

      Also was Du natürlich machen kannst wenn Du die daten alle brauchst einfach order by rechnungs_nummer desc limit 1 und Du hast genau den Datensatz den Du brauchst...
      ODer Du gruppierts anständigt und benutzt HAVING

      Kommentar

      Lädt...
      X