返回CASE语句中的第一行

时间:2016-07-25 20:19:52

标签: sql-server aggregate

我在select中返回了很多值的case语句,但是我只想要第一个值,因为我正在做Count。

SELECT DISTINCT   
ATM.TicketID
,COUNT(CASE WHEN ((ATM.PriorityID='E' OR ATM.PriorityID='U') AND 
MAX(ATQ.QuestionID) THEN 1 END)) AS [A]
.....

对于每个“E”和“U”值,有许多QuestionID(从另一个表加入)。但是每个E或U我只需要一个QuestionID。

我在使用嵌套聚合时遇到困难。

1 个答案:

答案 0 :(得分:0)

将PriorityID移至where子句

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