SQL Abfrage

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

  • SQL Abfrage

    Hallo,

    wollte mal fragen ob mir jemand die richtige SQL-Anweisung zu folgender Abfrage mitteilen kann.

    Beispiel:

    PHP-Code:
    FZ       Status              ID
    audi1    neukauf             1
    bmw1     neukauf             2
    opel1    neukauf             3
    fiat1    neukauf             4
    audi1    in Reperatur        5
    bmw1     verschrottet        6
    audi1    betriebsfähig       7
    opel1    in Reperatur        8 
    So,...
    Nun möchte ich immer nur einen(den letzten) Datensatz jedes FZ sehen:

    PHP-Code:
    FZ       Status              ID
    audi1    betriebsfähig       7
    bmw1     verschrottet        6
    opel1    in Reperatur        8
    fiat1    neukauf             4 
    gruss david

  • #2
    ohne eine DatumZeitSpalte -> no way

    Kommentar


    • #3
      wenn der neueste die höchste id hat, dann schon


      An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

      Kommentar


      • #4
        Code:
        CREATE TABLE tabelle (
          FZ varchar(30) NOT NULL default '',
          Status varchar(30) NOT NULL default '',
          ID int(11) NOT NULL auto_increment,
          PRIMARY KEY  (ID)
        ) TYPE=MyISAM;
        
        #
        # Dumping data for table `tabelle`
        #
        
        INSERT INTO tabelle VALUES ('audi1', 'neukauf', 1);
        INSERT INTO tabelle VALUES ('bmw1', 'neukauf', 2);
        INSERT INTO tabelle VALUES ('opel1', 'neukauf', 3);
        INSERT INTO tabelle VALUES ('fiat1', 'neukauf', 4);
        INSERT INTO tabelle VALUES ('audi1', 'in Reperatur', 5);
        INSERT INTO tabelle VALUES ('bmw1', 'verschrottet', 6);
        INSERT INTO tabelle VALUES ('audi1', 'betriebsfähig', 7);
        INSERT INTO tabelle VALUES ('opel1', 'in Reperatur', 8);
        Code:
        mysql> SELECT
            ->     FZ,
            ->     Status,
            ->     MAX(ID)
            -> FROM
            ->     tabelle
            -> GROUP BY
            ->     FZ
            ->     ;
        +-------+---------+---------+
        | FZ    | Status  | MAX(ID) |
        +-------+---------+---------+
        | audi1 | neukauf |       7 |
        | bmw1  | neukauf |       6 |
        | fiat1 | neukauf |       4 |
        | opel1 | neukauf |       8 |
        +-------+---------+---------+
        4 rows in set (0.00 sec)


        Code:
        SELECT  
             FZ,       
             Status,   
             MAX(ID)   
         FROM          
             tabelle   
         GROUP BY      
             FZ
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          wenn der neueste die höchste id hat, dann schon
          ist so!
          wird ja automatisch hochgezählt

          ohne eine DatumZeitSpalte -> no way
          ist auch vorhanden, habs jedoch nicht erwähnt...

          Gruss David

          Kommentar


          • #6
            wenn der neueste die höchste id hat, dann schon
            ist so!
            wird ja automatisch hochgezählt

            ohne eine DatumZeitSpalte -> no way
            ist auch vorhanden, habs jedoch nicht erwähnt...

            Gruss David

            Kommentar


            • #7
              PHP-Code:
              SELECT  
                   FZ
              ,       
                   
              Status,   
                   
              MAX(ID)   
               
              FROM          
                   tabelle   
               GROUP BY      
                   FZ 
              das stimmt ja der Status nicht...
              möchte ja den aktuellen Status jedes FZ sehen...

              Gruss David

              Kommentar


              • #8
                dann machs doch wie folgt:


                SELECT
                FZ,
                Status,
                MAX(ID)
                FROM
                tabelle
                GROUP ID
                FZ

                Kommentar


                • #9
                  dat funzt alles net...

                  das muss doch irendwie möglich sein...

                  Wo sind die SQL Gurus?

                  gruss david

                  Kommentar


                  • #10
                    mmh...

                    keiner eine Idee?

                    Kommentar


                    • #11
                      Code:
                      SELECT
                        f.fz, f.status, f.id
                      FROM 
                        tabelle f
                        LEFT JOIN tabelle dummy ON f.fz = dummy.fz AND f.id < dummy.id
                      WHERE dummy.id IS NULL
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #12
                        cool...

                        Hut ab!

                        thx David

                        Kommentar

                        Lädt...
                        X