select ClassID, count(*) as '学生人数', sum(奖惩总数) as '奖惩总数'
from 
(
 select B.ClassID,B.UserID,D.奖惩总数
 from B
 left join
 (
  select UserID ,count(*) as '奖惩总数'
  from C
  group by UserID
 ) D
 on B.UserID = D.UserID
) E
group by ClassID

解决方案 »

  1.   

    select A.ClassID, A.ClassName, F.学生人数, F.奖惩总数
    from A
    left join
    (select ClassID, count(*) as '学生人数', sum(奖惩总数) as '奖惩总数'
     from 
     (
      select B.ClassID,B.UserID,D.奖惩总数
      from B
      left join
      (
       select UserID ,count(*) as '奖惩总数'
       from C
       group by UserID
      ) D
      on B.UserID = D.UserID
     ) E
     group by ClassID
    ) F
    on A.ClassID = F.ClassID
      

  2.   

    select a.classID,a.classname,count(b.UserID),count(c.userID)
    from 表A a 表B b,表C c where a.classID=b.classID and c.userID=b.classID
    group by a.classID,a.classname
      

  3.   

    select a.classID,a.classname,count(b.UserID)as 学生人数,count(c.userID) as 奖惩总数 from 表A a 表B b,表C c where a.classID=b.classID and c.userID=b.classID
    group by a.classID,a.classname
      

  4.   

    SELECT A.CLASSID,A.CLASSNAME,B.STUDENTCOUNT,C.JHCOUNT FROM 表a A ,(SELECT userid,COUNT(CLASSID) AS STUDENTCOUNT FROM 表b group by classid),(select userid,count(userid),表b D as jhcount from 表c C group by userid)where A.CLASSID=d.classid and a.userid=b.userid and a.classid=c.classid
      

  5.   

    select A.ClassID, A.ClassName, F.学生人数, F.奖惩总数
    from A
    left join
    (select ClassID, count(*) as '学生人数', sum(奖惩总数) as '奖惩总数'
     from 
     (
      select B.ClassID,B.UserID,D.奖惩总数
      from B
      left join
      (
       select UserID ,count(*) as '奖惩总数'
       from C
       group by UserID
      ) D
      on B.UserID = D.UserID
     ) E
     group by ClassID
    ) F
    on A.ClassID = F.ClassID