An expression of a non-Boolean type specified in the context in which the condition is expected, next to 'then'

I checked a lot of questions related to a similar error, but I can not find anwer that can help me with my error I chose with cases

select case when e.EthnCode in ('N','A','B','P','W') then ethnicity else 'Multi' end as Ethnicity, case when cat.CategCode IN ('CH','IN','NB','PG','PP','SR')then Category else 0 end as ' ', --COUNT (c.EthnCode) as '(A) tottal Numbers of participamts by Rase', sum(case when C.StatusID =1 or C.StatusID =2 then 1 else 0 end), sum(case when c.Hispanic then 1 else 0 end) as 'Hisp' from Ethnicity E LEFT JOIN Clients C ON c.EthnCode = e.EthnCode LEFT join Category cat ON c.CategCode = cat.CategCode where c.StatusID = 1 group by case when e.EthnCode in ('N','A','B','P','W') then ethnicity else 'Balance Reporting More Than One Race' end 

and he gives an error

 Msg 4145, Level 15, State 1, Line 9 An expression of non-boolean type specified in a context where a condition is expected, near 'then'. 

Line 9

  sum(case when c.Hispanic then 1 else 0 end) as 'Hisp' 

he emphasizes Hispanic please help :)

+4
source share
2 answers
  sum(case when c.Hispanic then 1 else 0 end) as 'Hisp' 

Change how (please use the correct value and data type in comparison)

  sum(case when c.Hispanic = 1 then 1 else 0 end) as 'Hisp' 

Or in a simple case like

  sum(case c.Hispanic when 1 then 1 else 0 end) as 'Hisp' 
+3
source

Doesn't think C.Hispanic is logical. Case When C.Hispanic = 1 Then ....

or some of them will be sorted.

+1
source

All Articles