做一个统计功能。有两个表。一个是地区。一个是学生表。
             city          student显示所有地区。每个地区学生人数。每个地区开通1号功能的人数,开通2号功能的人数。登陆过得人数。
    sid              stu_num               a1_num                 a2_num           log_num
求救。

解决方案 »

  1.   

    select c.sid,sum(case when 功能 = 1 then 1 else 0 end ) as '开通1号功能的人数',
    sum(case when 功能 = 2 then 1 else 0 end ) as '开通2号功能的人数',
    count(s.sid) as '登录人数'
    from city c
    left join student s on c.sid= s.sid
    group by c.sid
    类似这样。
      

  2.   

    我只能说1楼很强大,这样都写出sql来了。
      

  3.   

    顶一下。楼上的不对。统计不出来。
    给出数据库字段。表1 student  
        sname   lognum   gn1    gn2     
           表2 地区
     省份代码    省份名称
       ssdm       ssmc
      

  4.   

    我是远程连的SQL 语句现在拿不出来。我说一下结构吧。学生表
    sname  varchar
    loginNum  int
    ysUser  int  值为0 或1  是否为合法用户
    Mobile   vharchar    里面为手机号或为空.
    SSDM  varchar 和城市表里的相对应.城市表.
    ssdm   省份代码 
    ssmc   省份名称
    就这些有用数据
      

  5.   

    SELECT 城市表.Ssdm Sid,
           COUNT(学生表.Sname) Stu_Num,
           SUM(CASE
                   WHEN 字段开通1号 THEN 1 ELSE 0
                 END) A1_Num,
           SUM(CASE
                   WHEN  字段开通2号 THEN 1 ELSE 0
                 END) A2_Num,
           COUNT(学生表.Loginnum) Log_Num
      FROM 学生表, 城市表
     WHERE 城市表.Ssdm = 学生表.Ssdm
     GROUP BY 城市表.Ssdm