Wählen Sie Maximum unter Duplikaten

Ich schreibe eine Abfrage in SQL für SSRS 2005 verwendet werden, die ist

select t1.Category, t2.condition,'1' as hasCondition from t1 left outer join t2 on t1.ID = t2.ID left outer join t3 on t2.cID = t3.cID where t3.clientID = 6 union select t1.Category, t2.condition, '0' as hasCondition from t1 left outer join t2 on t1.ID = t2.ID 

und es gibt die data wie folgt zurück:

  Category Condition hasCondition Behavioural Tourette's Syndrome 0 Communications Impaired Speech 0 Dexterity Osteoarthritus 0 Dexterity Osteoporosis 0 Dexterity Other Dexterity 0 Dexterity Rheumatoid Arthritus 0 Emotional Bipolar Disorder 0 Emotional Clinical Depression 0 Emotional Depression 0 Emotional Depression 1 Emotional Gulf War Syndrome 0 Emotional Gulf War Syndrome 1 

Jetzt möchte ich nur einen datasatz aus Duplikaten Zeilen / Ergebnisse zum Beispiel auswählen: Kategorie-Emotional, Bedingung-Depression, dieCondition '1' oder 'true'

Ich hoffe, ich habe es mit dem Beispiel klar gemacht. Bitte hilf mir.

Vielen Dank.

Es ist nicht 100% klar, was du willst, aber ich denke du bist nur auf der search nach dem MAX () des letzten Feldes …

 SELECT category, condition, MAX(has_condition) AS hasCondition FROM ( select t1.Category, t2.condition,'1' as hasCondition from t1 left outer join t2 on t1.ID = t2.ID left outer join t3 on t2.cID = t3.cID where t3.clientID = 6 union select t1.Category, t2.condition, '0' as hasCondition from t1 left outer join t2 on t1.ID = t2.ID ) AS data GROUP BY category, condition 

Wenn du diese ganze Abfrage vereinfachen wolltest …

  select t1.Category, t2.condition, MAX(CASE WHEN t3.clientID = 6 THEN 1 ELSE 0 END) as hasCondition from t1 left outer join t2 on t2.ID = t1.ID left outer join t3 on t3.cID = t2.cID and t3.clientID = 6 group by t1.Category, t2.condition 
 SELECT category, condition, MAX(hasCondition) FROM ( select t1.Category, t2.condition,'1' as hasCondition from t1 left outer join t2 on t1.ID = t2.ID left outer join t3 on t2.cID = t3.cID where t3.clientID = 6 union select t1.Category, t2.condition, '0' as hasCondition from t1 left outer join t2 on t1.ID = t2.ID) GROUP BY category, condition