2016-04-04 9 views
-1

Ich muss das Ergebnis des Tests "PASS"/"FAIL" für die Seriennummer gruppieren. Wenn einem oder mehr Test "FAIL" das Ergebnis für die Seriennummer ist "FAIL"Sqlite GROUP Abfrage

CREATE TABLE IF NOT EXISTS Test 
(
    Id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, 
    Product TEXT NOT NULL, 
    Serial INTEGER NOT NULL, 
    Result TEXT NOT NULL, 
    NTest INTEGER NOT NULL 
    ); 

INSERT INTO Test (Product, Serial, Result,Ntest) 
VALUES ('Sample', 1, 'PASS',1),('Sample', 1, 'FAIL',2), 
('Sample', 1, 'PASS',3),('Sample', 2, 'PASS',1), 
('Sample', 2, 'PASS',2),('Sample', 2, 'PASS',3); 

SELECT Product,Serial,Result 
FROM test 
GROUP BY Serial; 

DELETE FROM test; 
DROP TABLE test; 

Ich brauche dies:

"Sample" "1" "FAIL" 
"Sample" "2" "PASS" 

aber Ergebnis sind:

"Sample" "1" "PASS" 
"Sample" "2" "PASS" 

dank

+0

Die Serien nicht eindeutig zuzuordnen sind, ich habe eine Art Test für die gleichen Serien und das Ergebnis wird „gespeichert“ wie PASS oder FAIL. Muss gruppiert werden, um eine Zeile Produkt, Seriennummer, Ergebnis zu haben. Das Ergebnis ist PASS, wenn alle Zeilen für die gleiche Serie PASS – Stacker

Antwort

0

Gruppieren von Ergebnissen in einer einzelnen Ausgabezeile für jede Gruppe. Sie können nicht einfach eine Spalte auflisten, die nicht selbst gruppiert ist. Es kommt nur aus einer zufälligen Reihe in der Gruppe.

In diesem Fall 'F' < 'P', so dass Sie den kleinsten Wert in der Gruppe wollen:

SELECT Product, Serial, MIN(Result) 
FROM test 
GROUP BY Serial; 
+0

groß sind !!!! Arbeit. Vielen Dank – Stacker