一年级 总计:120人
人数 男生人数 女生人数
一年一班 25人 12 13
一年二班 95人 40 55

二年级 总计:49人
人数 男生人数 女生人数
二年一班 12人 6 6
想做一个这样的统计,请各位高手指点一二,用一条SQL语句可以读出这个数据吗?我现在用的是SELECT bj, nj, COUNT(*) AS num,sum(case when xb='男' then 1 else 0 end ) as m,sum(case when xb='女' then 1 else 0 end ) as w FROM stu_info  GROUP BY bj, nj ORDER BY nj, bj这样可以读出来班级人数,男生人数,女生人数,但年级人数读不出来,有朋友说可以用union来实现急在线等

解决方案 »

  1.   

    水晶报表应该可以实现啊。用报表工具比较简单。SQL语句你还需要控制输出的格式。
      

  2.   

    SELECT bj COUNT(*) AS num,
    sum(case when xb='男' then 1 else 0 end ) as m,
    sum(case when xb='女' then 1 else 0 end ) as w 
    FROM stu_info  
    GROUP BY bj, nj
    union all
    SELECT nj, COUNT(*) AS num,
    sum(case when xb='男' then 1 else 0 end ) as m,
    sum(case when xb='女' then 1 else 0 end ) as w 
    FROM stu_info  
    GROUP BY nj 
      

  3.   

    用报表工具不是也需要SQL语句来读出来 吗?
      

  4.   

    SQL 2005以上出的报表服务 简称SSRS
      

  5.   

    SSRS和水晶报表那个能好一些?
      

  6.   

    我是在.net环境下用,朋友们帮忙分析一下,用repeater控件嵌套使用怎么样,能不能解决这个问题?
      

  7.   


    要强大的话 还是水晶报表
    不过价格嘛....
    SSRS是可以免费的