select Custid as ClassID,MIN(age) as Min_Age,MAX(age) as Max_Age
from Cust 
where Gender='m'
group by Custid

解决方案 »

  1.   

    select CustID,count(case gender when 'f' then 1 else 0) as f_count 
    from Cust
    group by CustID
      

  2.   

    select CustID,sum(case gender when 'f' then 1 else 0) as f_count 
    from Cust
    group by CustID
      

  3.   

    select CustID,sum(case gender when 'f' then 1 else 0 end) as f_count 
    from Cust
    group by CustID
      

  4.   

    select a.ClassID,a.Min_Age,a.Max_Age,sum(case b.Age begin '' end '' and Gender ='f' then 1 else 0 end) as 男性人数,sum(case b.Age begin '' end '' and Gender ='m'  then 1 else 0 end) as 女性人数 from class a,Cust b
    group by a.ClassID,a.Min_Age,a.Max_Age
      

  5.   

    select b.ClassID,count(Gender) '人数' from Cust a ,Class b where a.Gender='m' and  a.Age between b.Min_Age  and b.Max_Age group by  b.ClassID 请提供测试数据,我还没测试的
      

  6.   

    全都用case呀?我不知道.我还以为要用特别复杂的多重查询呢.
      

  7.   

    不用 case 
    select CustID,count(*) as f_count 
    from Cust
    where gender='m'
    group by CustID
      

  8.   

    回:btut2004(《电子产品世界》程序员,卖富爸爸光盘) 是没有键的联系.
      

  9.   

    回:lsxaa(小李铅笔刀)错!!!!
    应该列出classID,count