日期:2014-05-20  浏览次数:20414 次

关于数据库读取的方法,横向读取并进行筛选.
做成绩系统遇到问题,这样的表读取该怎么写
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选修的科目李四没有,那么自动填充一个无。




------解决方案--------------------
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