MYSQL: Problem mit MAX

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

  • MYSQL: Problem mit MAX

    Hallo,

    habe folgendes Problem:

    Tabelle Kundenlogin

    ID KID DATUM STATUS
    1 1 2009-06-30 13:27:56 1
    2 1 2009-06-31 13:27:56 2
    3 2 2009-06-31 15:27:56 1

    Was ich möchte, ist eine Abfrage, die mir Gruppiert den letzten Login aller meiner Kunden anzeigt.

    Bsp.:

    KID DATUM STATUS
    1 2009-06-31 13:27:56 2
    2 2009-06-31 15:27:56 1

    Mein Ansatz:

    SELECT MAX(datum) as maxdate, kid, status
    FROM kunde
    GROUP BY kid

    funktioniert nicht .( Starus-ID stimmt nciht überein
    Habe auch mit einem Subquery getestet, ebenfalls ohne erfolg

    HILFE

  • #2
    In was für einem Feldtyp ist das Datum denn gespeichert!?
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      Zitat von dumdumdum Beitrag anzeigen
      SELECT MAX(datum) as maxdate, kid, status
      FROM kunde
      GROUP BY kid

      funktioniert nicht .( Starus-ID stimmt nciht überein
      Jedes andere DBMS würde dir eine solche Query, in der du Spalten selektierst, über die du nicht gruppiert hast und die nicht Ergebnis einer Aggregatfunktion sind, mit einer Fehlermeldung um die Ohren hauen.

      MySQLs falsche "Nachsichtigkeit" führt dazu, dass du für status, das in der Feldliste gar nicht auftauchen dürfte, einfach "irgendwas" geliefert bekommst.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Zitat von wahsaga Beitrag anzeigen
        Jedes andere DBMS würde dir eine solche Query, in der du Spalten selektierst, über die du nicht gruppiert hast und die nicht Ergebnis einer Aggregatfunktion sind, mit einer Fehlermeldung um die Ohren hauen.

        MySQLs falsche "Nachsichtigkeit" führt dazu, dass du für status, das in der Feldliste gar nicht auftauchen dürfte, einfach "irgendwas" geliefert bekommst.
        und wie mach es es richtig?
        Datum ist ein timestamp (SQL)

        Kommentar


        • #5
          Zitat von dumdumdum Beitrag anzeigen
          und wie mach es es richtig?
          Mit einer korrelierten Subquery.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Zitat von wahsaga Beitrag anzeigen
            Mit einer korrelierten Subquery.
            hab eine gute Quelle zum Thema Korrelierte Subquery gefunden, damit funktioniert es jetzt

            Kommentar

            Lädt...
            X