2016-06-22 5 views
0

Как я могу просто вычислить COUNT для отдельного ControlNo только там, где столбец TYPE = 'Новый бизнес'. Но мне нужно сделать это в запросе, который будет присоединен к таблице календаря.Получить отличный счет с условием

SELECT  underwriter, 
      --ControlNo, 
      SUM(CASE WHEN Type = 'New Business' AND RevisedStatus IN ('Bound','Cancelled','Notice of Cancellation') THEN 1 ELSE 0 END) as 'Binds - NEW BUSINESS', 
      SUM(CASE WHEN Type = 'Renewal'  AND RevisedStatus IN ('Bound','Cancelled','Notice of Cancellation') THEN 1 ELSE 0 END) as 'Binds - RENEWALS', 
      SUM(CASE WHEN Type = 'Rewrite'  AND RevisedStatus IN ('Bound','Cancelled','Notice of Cancellation') THEN 1 ELSE 0 END) as 'Binds - REWRITE', 


      SUM(CASE WHEN Type = 'New Business' THEN 1 ELSE 0 END) as Submissions1, 
      count( case when type = 'New Business' then ControlNo else 0 end) as Submissions2, 


      b.MonthNum, 
       b.YearNum, 
       b.MonthName 

FROM  tblCalendar b 
LEFT JOIN Test_Plaza_ClearanceReport a ON b.MonthNum=Month(a.EffectiveDate)  
      AND b.YearNum = YEAR(a.EffectiveDate) 
      AND a.Underwriter ='Brown, Debra' 
WHERE  b.YearNum = 2016 
GROUP BY 
       b.MonthName, 
       b.MonthNum, 
       b.YearNum, 
       --ControlNo, 
       underwriter 

У меня немного другой результат. Какой из них мне следует доверять? enter image description here

ответ

1

Вы бы выразить это как:

count(distinct case when type = 'New Business' then ControlNo end) as UniqueValues 

Примечание: Там нет else; без него выражение оценивается как NULL, и значения не учитываются.

+0

Спасибо, я не знал об этом .. – Oleg

Смежные вопросы