2016-04-13 6 views
-2

Ich brauche SQL-Abfrage in zusammengefasst folgt TabellenSQL-Abfrage aus 3 Hauptkategorie

Name   taksRef.  FileNumbr 
Nabil  Very Good  6 
Nabil  Good    6 
Nabil  BAD    6 

Von der 3 Hauptkategorie bei taksRef. (Sehr gut, gut, schlecht). Ich brauche SQL-Abfrage, um Nabil auszuwählen, falls taksRef. = (Sehr gut) zuerst, wenn nicht gefunden, um dann zu nehmen (gut) wenn nicht gefunden, um (schlecht) zu nehmen.

+1

Welche DBMS verwenden Sie? –

+1

Bitte senden Sie Ihre einfache Testanfrage –

Antwort

1

Versuchen Sie, diese

select top 1 NAme,taksRef,FileNUmebr, 
case 
when taksRef ='Very Good' then 1 
when taksRef ='Good' then 2 
when taksRef ='Bad' then 3 
else 4 
end as sno 
from table 
where name='Nabil' 
order by sno 
+0

Wenn Sie eine produktspezifische Antwort auf eine Frage geben, ohne dass dbms angegeben ist, sagen Sie zumindest OP, mit welchem ​​dbms es arbeitet. – jarlh

+0

Bekannt. Es funktioniert für SQL Server – Madhivanan

0

Da Sie nicht gesagt haben, was DBMS Sie verwenden. Ich mache es nur auf SQL Server DBMS-Methode.

SELECT * FROM table 
WHERE [taksRef.] = (CASE WHEN (SELECT COUNT(*) FROM table WHERE [taksRef.] = 'Very Good') > 0 THEN 'Very Good' 
         WHEN (SELECT COUNT(*) FROM table WHERE [taksRef.] = 'Good') > 0 THEN 'Good' 
         ELSE 'Bad' 
        END) 

Dies wird Datensatz (s) zurückgeben, die TaksRef ist. ist Very Good,

, wenn es in den Tabellen keine Very Good Eintragung (en) haben, wird es Rekord zurückkehren (n) mit Good ... gleiche Konzept gilt für Bad

es Sie

0

hoffst helfen eine abgeleitete Tabelle die Namen der einzelnen besten taksRef (zum Glück bereits in alphabetischer Reihenfolge!) zu finden, verbinden sie mit diesem Ergebnis die Namen der einzelnen beste Zeile zurückzukehren (e):

select t1.* 
from tablename t1 
join (select Name, max(taksRef) from tablename group by Name) t2 
    on t1.Name = t2.Name and t1.taksRef = t2.taksRef 

werden beide Reihen im Falle eines Unentschiedens zurückkehren!

Kern ANSI SQL-99. Arbeitet mit jedem dbms!

Verwandte Themen