做成绩系统遇到问题,这样的表读取该怎么写
id  name  xuehao  cj  kemu_id  banID
1   张三  200701  88   语文    1
2   张三  200701  79   政治    1
3   张三  ......  60   数学    1
4   张三  200701  58   英语    1
5   李四  200703  99   语文    1
6   李四  200703  35   英语    1
7   张三  200701  75   美术    1
8   王五  200704  90   政治    2……这样一个表现在我要这样读取数据,筛选banid为1姓名  学号   语文  数学 政治 英语 美术
张三 200701   99    60   79       75
李四  ……查询一个班,每个班科目基本是一样的,但是可能出现选修,也就是张3选修的科目李四没有,那么自动填充一个无。

解决方案 »

  1.   

    select name as '姓名',xuehao as '学号',isnull((select sum(cj) from Table2 where xuehao=a.xuehao and kemu_id='语文' and banID=a.banid),'无') as '语文',.....
    from table1 a group by name,xuehao
      

  2.   

    忘记筛选banid为1的了。。自己加上吧。。其他的科目跟语文的一样。。
      

  3.   

    select name as '姓名',xuehao as '学号',(select sum(cj) from table1 where xuehao=a.xuehao and kemu_id='语文' and banID=a.banid) as '语文',.....
    from table1 a group by name,xuehao
      

  4.   

    Click the link to solve your problem.Good luck!