2015-08-14 2 views
1

У меня есть запрос внутри хранимой процедуры подсчета некоторых записей внутри таблицы:Возврат к нулю для некоторых записей в SQL

SELECT 
    t_Supporter.supporterID, 
    COUNT(t_ticket.ticketID) AS totalTicket 
FROM t_Supporter 
INNER JOIN t_ticket 
    ON t_Supporter.supporterID = t_ticket.supporterID_FK 
WHERE (t_Supporter.orgSectionID_FK = @orgID) 
GROUP BY t_Supporter.supporterID 

Как я могу сделать мой возврат запроса ноль если t_Supporter.supporterID нет записей в t_ticket ,

ответ

1

Вы должны изменить ваш COUNT к SUM с условной агрегации и ваш INNER JOIN к LEFT OUTER

SELECT t_Supporter.supporterID, SUM(CASE WHEN t_ticket.ticketID IS NOT NULL THEN 1 ELSE 0 END) AS totalTicket 
FROM t_Supporter LEFT OUTER JOIN 
    t_ticket ON t_Supporter.supporterID = t_ticket.supporterID_FK 
WHERE (t_Supporter.orgSectionID_FK = @orgID) 
GROUP BY t_Supporter.supporterID 
+0

, который работает, спасибо –

+0

Нет проблем. Подтвердите и примите, когда сможете. Благодаря! – TTeeple