SELECT BH,XB, COUNT(XB),sum(case when SF>80 then 1 else 0 end)  SF 
FROM XSXX GROUp BY BH,XB

解决方案 »

  1.   

    To pengdali(大力 V2.0) 你好:问题就出在这里 假设我要的不是 > 80 分 而是去选择一个等级值 要得到如下结果--                    0-59       60-70     71-90     91-100 
    班级   性别  人数  不及格人数  及格人数   良好人数  优秀人数001班  男    32       5          3          2         6
    001班  女    20       2          8          3         5    
    002班  男    18       1          5          5         5 
    002班  女    30       3          3          3         3 我原来就是这样选择的
    SELECT BH,XB, COUNT(XB),
    (SELECT COUNT(XB) FROM XSXX WHERE SF>0 AND SF<=59 GROUP BY BH,XB ) AS BJG 
    (SELECT COUNT(XB) FROM XSXX WHERE SF>60 AND SF<=70 GROUP BY BH,XB ) AS JG 
    ...............
    FROM XSXX GROPU BY BH,XB
    这样写 显然也不行 请问我又该怎么写呢?
      

  2.   

    SELECT BH,XB, COUNT(XB),
    sum(case when SF between 0 and 59 then 1 else 0 end) 不及格人数,
    sum(case when SF between 69 and 70 then 1 else 0 end) 及格人数,
    sum(case when SF between 71 and 90 then 1 else 0 end) 良好人数,
    sum(case when SF between 91 and 100 then 1 else 0 end) 优秀人数
    FROM XSXX GROUp BY BH,XB
      

  3.   

    TO pengdali(大力 V2.0) 你好
    我还有点想不通 你为什么不用 SF>60 AND SF<=70 而用 SF between 60 and 70
      

  4.   

    按你题目上的是 大于等于60的和小于等于79为一等级
    既:
     SF>=60 AND SF<=70 
    而用
     SF between 60 and 70是相当于这个的
      

  5.   

    to  pengdali(大力 V2.0) 你好
    你也解决了我的问题,谢谢
    交个朋友好吗?
    另:ASP.NET
      

  6.   

    另ASP.NET编程方面能否帮我一下,谢谢
    [email protected]