尝试这个
drop table tests
CREATE TABLE tests(TestName varchar(10),Stage1 varchar(10),Stage2 varchar(10),Stage3 varchar(10),Stage4 varchar(10))
INSERT INTO tests
VALUES('Test1','John','Calra','John','Calra'),('Test2','Calra',null,'John','Calra')
select * from tests
select 'John' as [User]
,SUM(case when stage1='John' then 1 else 0 end) as stage1
,SUM(case when stage2='John' then 1 else 0 end) as stage2
,SUM(case when stage3='John' then 1 else 0 end) as stage3
,SUM(case when stage4='John' then 1 else 0 end) as stage4
from tests
UNION
select 'Calra' as [User]
,SUM(case when stage1='Calra' then 1 else 0 end) as stage1
,SUM(case when stage2='Calra' then 1 else 0 end) as stage2
,SUM(case when stage3='Calra' then 1 else 0 end) as stage3
,SUM(case when stage4='Calra' then 1 else 0 end) as stage4
from tests
使用子查询。但没有成功。 – user990897 2012-07-31 06:50:09
嗨,约翰。你还没有指定一个问题。此外,您的文章显示没有尝试解决问题,并且看起来像您希望其他人为您完成工作。你能否编辑你的问题给我们一个想法,你已经尝试了什么,什么不适合你?有关于在[常见问题](http://stackoverflow.com/faq)中发布好问题的提示。 – 2012-07-31 06:50:31