读书人

求一SQL写法,解决方法

发布时间: 2012-03-07 09:13:51 作者: rapoo

求一SQL写法,
http://community.csdn.net/Expert/topic/5379/5379301.xml?temp=.5264398

数据库表结构:
id sex zt
1 男 1
2 女 0
3 女 1
4 女 1
5 女 1
6 男 0
如果要得出
4,1 ,3
而且 是一行记录
如何写呢


有这样的写法吗
select count(*) as c1,sum(case sex when '男 ' then 1 else 0 end ) as c2,sum(case sex when '女 ' then 1 else 0 end ) as c3 from 表名 where zt=1


[解决办法]
不过你的库是Access还是SQL Server啊?
如果是Access则不行,因为Access不支持Case语句的
[解决办法]
第一列是第二列和第三列之和, 这儿只得出后面两个数据,如果要第列数据,你可以在这个基础上修改一下,很简单
select count(distinct a.id) c2 , count(distinct b.id) c3 from table1 a , table1 b where a.zt=1 and a.sex= '男 ' and b.sex= '女 ' and b.zt=1
[解决办法]
access用IIF

select count(*) as c1,sum(iif(sex= '男 ',1 ,0 )) as c2,sum(iif(sex= '女 ',1,0)) as c3
from tb
where zt=1
[解决办法]
select count(*) as c1,sum(iif(sex= '男 ',1 ,0 )) as c2,sum(iif(sex= '女 ',1,0)) as c3
from tb
where zt=1

正解
[解决办法]
SELECT sum(zt) AS c1, sum(IIf([sex]= '男 ',1,0)) AS c2, sum(IIf([sex]= '女 ',1,0)) AS c3
FROM tb
WHERE zt=1;

读书人网 >VB

热点推荐