Vinzenz Mai: komplizierte(?) MySql-Abfrage

Beitrag lesen

Hallo Tobias,

Ich gehe davon aus, dass ein Produkt nur einmal den gleichen Arbeitsschritt mit Erfolg "yes" durchläuft. Wenn dies nicht der Fall ist, dann müsstest Du erläutern, welchen dieser Datensätze Du haben möchtest.

Nun ist es leider so, das es vorkommen kann (muss aber nicht) das Arbeitsschritt A nocheinmal durchlaufen werden muss, wenn Arbeitsschritt B nicht erfolgreich war. In dem Fall würde mich nur der letzte erfolgreiche Arbeitsschritt A interessieren.

wenn Dich *nur* das Datum und das Produkt interessieren, ist es recht einfach (wiederum mache ich eine Annahme: das Datum ist in einer Spalte mit einem angemessenen Datentyp, DATETIME oder DATE, abgespeichert):

SELECT                            -- Gib mir  
    [link:http://dev.mysql.com/doc/refman/5.1/en/group-by-functions.html#function_max@title=MAX](Datum),                   -- das neueste Datum, an dem  
    Produkt                       -- das Produkt  
FROM                              -- aus  
    Tabelle                       -- meiner Tabelle  
WHERE  
    Arbeitsschritt = 'A'          -- den Arbeitsschritt A  
AND  
    erfolg = 'yes'                -- erfolgreich durchlaufen hat  
AND                               -- wobei mich nur solche  
    Produkt IN (                  -- Produkte interessieren  
        SELECT                    -- die in der Liste  
            Produkt               -- der Produkte stehen  
        FROM  
            Tabelle  
        WHERE                     -- die  
            Arbeitsschritt = 'B'  -- den Arbeitsschritt B  
        AND  
            erfolg = 'yes'        -- erfolgreich durchlaufen haben.  
    )  
GROUP BY                          -- ein neuestes Datum  
    Produkt                       -- kann es nur je Produkt geben  

Möchtest Du noch weitere Spalten zu dem Datensatz mit dem jüngsten Datum haben, dann ist das *nicht* mehr so einfach. Dann benötigst Du wahrscheinlich eine korrelierte Unterabfrage, siehe zum Beispiel diesen Archivbeitrag von mir.

Freundliche Grüße

Vinzenz