我现在有以下几张表 
学生信息: 
    学号       姓名       班级              专业         性别   出生年月  籍贯
  0732101   丁岳杰 计算机科学与技术二 计算机科学与技术一 男 1989-10-30 浙江温州 
  0732102     张炜 计算机科学与技术一 计算机科学与技术一 男 1987-08-26 辽宁沈阳 
  0732103   雷屹 计算机科学与技术二 计算机科学与技术一 男 1987-10-21 陕西渭南 
  0732104   李晨 计算机科学与技术一 计算机科学与技术一 男 1989-02-05 陕西长安 
  0732105   张工展 计算机科学与技术一 计算机科学与技术一 男 1988-02-01 河南开封 
  0732106   刘晋 计算机科学与技术一 计算机科学与技术一 男 1987-03-17 山东德州 
  0732107   魏延朋 计算机科学与技术一 计算机科学与技术一 男 1986-01-16 陕西高陵 
  0732108   仝博仁 计算机科学与技术一 计算机科学与技术一 男 1988-10-16 江苏徐州 
  0732109   麻晓宇 计算机科学与技术一 计算机科学与技术一 男 1988-10-31 内蒙丰镇 
  0732110   李鹏 计算机科学与技术一 计算机科学与技术一 男 1987-03-20 陕西富平 
  0732111   仵栋一 计算机科学与技术一 计算机科学与技术一 男 1987-06-27 河南南阳 
  0732112   王冉 计算机科学与技术一 计算机科学与技术一 男 1988-06-25 河南商丘 
  0732113   刘良高 计算机科学与技术一 计算机科学与技术一 男 1987-09-07 湖南隆回县 
  0732114   王强 计算机科学与技术一 计算机科学与技术一 男 1985-09-26 湖北襄樊 
  0732115   胡怡浩 计算机科学与技术一 计算机科学与技术一 男 1989-05-25 陕西西安 
  0732116   方子胜 计算机科学与技术一 计算机科学与技术一 男 1986-02-02 陕西榆林 
  0732117   刘晨 计算机科学与技术一 计算机科学与技术一 男 1989-02-05 山西临漪 
  0732118   周海洋 计算机科学与技术一 计算机科学与技术一 男 1987-05-12 江西上饶 
  0732119   徐海 计算机科学与技术一 计算机科学与技术一 男 1989-03-24 山东沾化 
  0732120   陈文龙 计算机科学与技术一 计算机科学与技术一 男 1988-03-30 河北石家庄 请假信息 学号 请假类型   请假开始时间                             请假结束时间   请假天数           备注 
0732104     事假   2007-08-23   上午   06:30:00 
0732105     事假   2007-08-23   上午   06:30:00 
0732106     病假   2007-08-23   上午   06:30:00 违纪信息 学号 违纪类型 违纪时间                                               备注 
0732102 早退 2007-08-21   下午   03:30:00 
0732104 早退 2007-08-21   下午   06:30:00 
0732105 早退 2007-08-21   下午   06:30:00 
0732106 迟到 2007-08-21   下午   06:30:00           这里是备注信息 
0732106 早退 2007-08-21   下午   06:30:00 
0732107 迟到 2007-08-21   下午   06:30:00 
0732108 迟到 2007-08-21   下午   06:30:00 
0732109 迟到 2007-08-21   下午   06:30:00 
0732112 旷课 2007-08-21   下午   06:30:00 
0732119 迟到 2007-08-23   上午   06:30:00 奖励信息 学号     奖励类型    奖励时间                         奖励原因 备注 
0732104 一等奖     2007-08-23  上午   06:30:00 
0732105           2007-08-23  上午  06:30:00 
0732106           2007-08-23   上午   06:30:00 惩罚信息 学号     惩罚类型    惩罚时间                            惩罚原因 备注 
0732104 警告        2007-08-21   下午   06:30:00 
0732105 上          2007-08-21   下午   06:30:00 
0732106           2007-08-21   下午   06:30:00 现在我想得到的查询结果是: 学号         姓名         班级            专业                     请假次数              违纪次数         奖励次数            惩罚次数 
0732102   张炜   计算机科学与技术一  计算机科学与技术一             0                   1               0               0 
0732104   李晨   计算机科学与技术一  计算机科学与技术一             1                   1               1               1 
0732105   张工展 计算机科学与技术一  计算机科学与技术一             1                   1               1               1     
0732106   刘晋   计算机科学与技术一  计算机科学与技术一             1                   2               1               1 
0732107   魏延朋 计算机科学与技术一  计算机科学与技术一             0                   1               0               1 
0732108   仝博仁 计算机科学与技术一  计算机科学与技术一             0                   1               0               1 
0732109   麻晓宇 计算机科学与技术一  计算机科学与技术一             0                   1               0               1 请问这个该怎么样去实现呢   ,不知道一条   SQL   能不能实现 

解决方案 »

  1.   

    select a.学号,a.姓名,a.班级,a.专业,b,请假次数,c.违纪次数,d.奖励次数,e.惩罚次数
    from 学生信息 a
    left join (select 学号,count(*) 请假次数 from 请假 group by 学号 ) b
    on a.学号 = b.学号
    left join (select 学号,count(*) 违纪次数 from 违纪 group by 学号 ) c
    on a.学号 = c.学号
    left join (select 学号,count(*) 奖励次数 from 奖励 group by 学号 ) d
    on a.学号 = d.学号
    left join (select 学号,count(*) 惩罚次数 from 惩罚 group by 学号 ) e
    on a.学号 = e.学号
      

  2.   


    select 学号,姓名,班级,专业,
    (select count(1) from 请假信息 where 学号=a.学号)[请假次数], 
    (select count(1) from 违纪信息 where 学号=a.学号)[违纪次数], 
    (select count(1) from 奖励信息 where 学号=a.学号)[奖励次数], 
    (select count(1) from 惩罚信息 where 学号=a.学号)[惩罚次数]
    from 学生信息 a