首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

求一SQL写法,解决方法

2012-03-07 
求一SQL写法,http://community.csdn.net/Expert/topic/5379/5379301.xml?temp.5264398数据库表结构:idsex

求一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;

热点排行