1

当我运行此查询时:

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)

我得到:

1992     1993      1994
3        NULL      NULL
NULL      3        NULL
NULL     NULL       3

如何更改查询以获取:

1992    1993    1994
3           3      3
4

2 回答 2

3

使用此查询,您只会得到一行:

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
于 2012-09-26T07:24:23.903 回答
1
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
于 2012-09-26T07:24:25.267 回答