Reputation: 1371
When I run this query:
select
'1992' = CASE WHEN Year(HireDate) = 1992 THEN count(*) END,
'1993' = CASE WHEN Year(HireDate) = 1993 THEN count(*) END,
'1994' = CASE WHEN Year(HireDate) = 1994 THEN count(*) END
from employees
group by Year(HireDate)
I get:
1992 1993 1994
3 NULL NULL
NULL 3 NULL
NULL NULL 3
How can I change the query to get:
1992 1993 1994
3 3 3
Upvotes: 1
Views: 143
Reputation: 7267
select
'1992' = sum (case when year(HireDate) = 1992 THEN 1 else 0 END),
'1993' = sum (case when year(HireDate) = 1993 THEN 1 else 0 END),
'1994' = sum (case when year(HireDate) = 1994 THEN 1 else 0 END),
from employees
Upvotes: 1
Reputation: 51645
With this query you will get only a row:
select
'1992'=
count( CASE WHEN Year(HireDate) = 1992 THEN 1 END ),
'1993' =
count( CASE WHEN Year(HireDate) = 1993 THEN 1 END ),
'1994' =
count( CASE WHEN Year(HireDate) = 1994 THEN 1 END )
from employees
Upvotes: 3