2016-07-25 12 views
0

Ich habe eine Case-Anweisung innerhalb einer Auswahl, die viele Werte zurückgibt, aber ich möchte nur den ersten Wert, da ich eine Zählung mache.Die erste Zeile innerhalb der CASE-Anweisung zurückgeben

Für jeden 'E' und 'U' Wert, gibt es viele QuestionIDs (verbunden aus einer anderen Tabelle). Aber ich brauche nur eine QuestionID für jedes E oder U.

Ich habe Schwierigkeiten mit verschachtelten Aggregaten.

+1

Sie können nicht eine Zeitreise in einer Abfrage. 'max()' Wert wird nicht bekannt sein, bis alle Zeilen gescannt wurden, so kann es nicht verwendet werden, während Sie die Zeilen scannen. –

+0

Ich brauche nicht unbedingt MAX, ich muss nur eines der vielen QuestionIDs auswählen – bojackh

Antwort

0

die PriorityID zu einer where Verschieben Klausel

SELECT 
ATM.TicketID, ATM.PriorityID, MAX(ATQ.QuestionID) 
FROM ATM 
    INNER JOIN ATQ ON {some criteria} 
WHERE ATM.PriorityID = 'E'OR ATM.PriorityID = 'U' 
GROUP BY ATM.TicketID, ATM.PriorityID 
Verwandte Themen