一条SQL语句问题!在线等待,急....(20分)

  • 主题发起人 主题发起人 新来的菜鸟
  • 开始时间 开始时间

新来的菜鸟

Unregistered / Unconfirmed
GUEST, unregistred user!
有个test表<br><br>&nbsp; &nbsp;考试名称 &nbsp; &nbsp;班级 &nbsp; 姓名 &nbsp; &nbsp; 语文 &nbsp; 数学 &nbsp; &nbsp;英语<br>2006级期末考 20080101 张三 &nbsp; &nbsp; A+ &nbsp; &nbsp; NULL &nbsp; &nbsp;NULL<br>2006级期末考 20080101 张三 &nbsp; &nbsp; NULL &nbsp; &nbsp;A &nbsp; &nbsp; &nbsp;NULL<br>2006级期末考 20080101 张三 &nbsp; &nbsp; NULL &nbsp; &nbsp;NULL &nbsp; &nbsp;B<br>2006级期末考 20080202 李四 &nbsp; &nbsp; B &nbsp; &nbsp; &nbsp; NULL &nbsp; NULL<br>2006级期末考 20080202 李四 &nbsp; &nbsp;NULL &nbsp; &nbsp; A+ &nbsp; &nbsp; NULL<br>2006级期末考 20080202 李四 &nbsp; &nbsp;NULL &nbsp; &nbsp; NULL &nbsp; C<br>2006级期末考 20080303 王五 &nbsp; &nbsp;C &nbsp; &nbsp; &nbsp; &nbsp;NULL &nbsp; NULL<br>2006级期末考 20080303 王五 &nbsp; &nbsp; NULL &nbsp; &nbsp;B &nbsp; &nbsp; &nbsp;NULL<br>2006级期末考 20080303 王五 &nbsp; &nbsp; NULL &nbsp; &nbsp;NULL &nbsp; &nbsp;A<br><br><br>现在我想显示为<br><br>&nbsp; &nbsp;考试名称 &nbsp; &nbsp;班级 &nbsp; 姓名 &nbsp; &nbsp; 语文 &nbsp; 数学 &nbsp; &nbsp;英语<br>2006级期末考 20080101 张三 &nbsp; &nbsp; A+ &nbsp; &nbsp; A &nbsp; &nbsp; &nbsp; &nbsp;B<br>2006级期末考 20080202 李四 &nbsp; &nbsp; B &nbsp; &nbsp; &nbsp;A+ &nbsp; &nbsp; &nbsp; C<br>2006级期末考 20080303 王五 &nbsp; &nbsp; C &nbsp; &nbsp; &nbsp;B &nbsp; &nbsp; &nbsp; &nbsp;A<br>我该如何写呢?麻烦各位帮我看看,小弟万分感谢
 
表设计有问题,<br><br><br>select a.考试名称,a.班级,a.语文,b.数学,c.英语 from (select 考试名称,班级,语文 from test where 语文 is not null ) a , (select 考试名称,班级,数学 from test where 数学 is not null ) b, (select 考试名称,班级,英语 from test where 英语 is not null ) c where a.考试名称=b.考试名称 and a.班级=b.班级 and b.考试名称=c.考试名称 and b.班级=c.班级
 
不好意思忘了说学科是不固定的,也就是说不能用写死的方式来做,麻烦各位帮我想想办法!谢谢 !
 
谁设计的源表,很恶搞啊!
 
你应该设计多个表,科目表,学生表,成绩表这样才好。
 
表设计的有问题,还不如这样设计表呢<br>主表A<br>考试名称 &nbsp;班级 &nbsp;姓名 &nbsp;科目 成绩<br><br>然后再建立一个科目表 B<br>ID &nbsp;科目<br>1、从科目表中读取所有的科目,到一个tstringlist<br>2、根据tstringlist中的行数,利用循环生成sql语句
 
我建议你写个程序来处理。
 
建议表建为<br>&nbsp; &nbsp;考试编号 &nbsp; &nbsp;班级编号 &nbsp; 考生代号 &nbsp; &nbsp;学科 &nbsp; 成绩<br>这样学科可以不固定<br>只要查询的时候行列转换就好了<br>简单,通用
 
多人接受答案了。
 
后退
顶部