如果有这一样一张表:人员情况表
字段:
姓名    姓别        学历        是否在职
要求统计出:高中(含)以下人员总数    高中以上本科(含)以下人员总数    本科以上人员总数  以及在职人员总数这怎么样查询呀?用一个SQL语句可以吗?查询结果怎么样创建到临时表并增加到临时表里面,又怎么样显示呢?

解决方案 »

  1.   

    SELECT 
    (SELECT count(*) FROM tablename WHERE  学历='高中' OR 学历='高中以下') AS '高中以下人数',
    (SELECT count(*) FROM tablename WHERE 学历='高中以上' OR 学历='本科以下') AS '高中以上本科以下人数',
    (SELECT count(*) FROM tablename WHERE 学历='本科' OR 学历='本科以上') AS '本科以上人数',
    (SELECT count(*) FROM tablename WHERE 是否在职='是') AS '在职人数'
    具体判断学历范围的时候还要根据实际表结构而定
      

  2.   

    select count(*) 人数  from table where 条件<=高中以下
    union
    select count(*) 人数  from table where 高中<条件<=本科
    union
    select count(*) 人数  from table where 条件>本科
      

  3.   

    用Case语句啦:
    Select count(case when 学历<高中 then 1 else 0 end )as count1,count(case when 学历>高中 then 1 else 0 end)as count2 from 人员情况表
    试试
      

  4.   

    Select Sum(case when 学历<高中 then 1 else 0 end )as count1,Sum(case when 学历>高中 then 1 else 0 end)as count2 from 人员情况表
      

  5.   

    上面各位大哥的方法都很好呀,你不用那么急嘛
    不过我觉得luke5678(奇异)大哥的方法最好,虽然比较麻烦,但是思路清晰