日期:2014-05-16  浏览次数:20595 次

求助一个sql server查询
求助!
一个表100个数据,其中20个的状态码是A,其余的都是B.
我想写一个查询,显示状态码是A的共20个,然后总共是100个数据。
我用了CASE WHEN,但是显示的都是两行数据,一行是A的20个,另一个是总共的100个。
就像这样:

CodeA    Total
20            100

就是这种一个查询中显示总数和符合某个条件的总数的查询,我就很晕了。

谢谢。
------解决方案--------------------

SELECT  SUM(CASE WHEN t.Status='A' THEN 1 ELSE 0 END) AS CaseA, COUNT(*) AS Total
FROM t 

------解决方案--------------------
select (select count(1) from tb where 状态码='A')[CodeA],(select count(1) from tb)[total]
from tb

------解决方案--------------------
晕也可以不用嘛,换个子查询呗

select COUNT(*)  Total, CodeA = (select COUNT(*) from dbo.tb where stsus = 'A') from dbo.tb