有关数据库的问题(100分)

  • 主题发起人 主题发起人 政务院
  • 开始时间 开始时间

政务院

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在有一个成绩数据库,数据库的结构为
学号,课程代号,分数 。问题是我想在一行上显示多门课的成绩,象我们平时打印的成绩表,例如,一行同时显示语文数学的成绩。希望能尽快回答。
 
采用 Sql 语句中的自连接即可。
 
请你详细一点好吗?
 
sql连接多个数据库,如:
select a.学号,a.分数,b.分数,.... from a,b,....
where a.学号=b.学号
and B.学号=...
...
 
数据表只有一个,如果自身连接的话,将得不到想要的结果 ,我这个数据库还有一个学年字段,我根本不知道总共有多少门课,该如何做。这个问题是在毕业设计的过程中遇到的,现在特别着急。
 
先定义一个字符串型的变量,算了,懒得写了,我吧原码给你吧
你的e-mail??
 
最好用DELPHI提供的QUICK REPORT页的控件来做,然后用SQL与QUERY控件来与数据库
进行连系,如下所示:
select a.学号,a.分数,b.分数,.... from a,b,....where a.学号=b.学号and B.学号=...
 
如果使用ORACLE:学号,课程代号,分数 。
select 学号,
sum(decode(课程代号,1,分数 ,0)) 语文,
sum(decode(课程代号,2,分数 ,0)) 数学
from 成绩数据库
group by 学号

如果是SQL SERVER 就使用CASE.

如果是DBF,呵呵,不知道.

BTW,
>sql连接多个数据库,如:
>select a.学号,a.分数,b.分数,.... from a,b,....
>where a.学号=b.学号
会出现很多条记录.
 
一个笨办法:
先用group by 课程号 where 年级=xxx判断一下该年级有几门课程,然后设置几个dateset
变量分别对应相应的课程号,再用一个stringgrid显示其数据!
select 学号,分数 from 表 where 课程号=xxx and 年级=xxx order by 学号
 
对不起,写错了,应该是distinct 课程号 where ...
 
新建一数据库包含所有课程,再用TABLE连接旧表,历遍所有记录,
把相同学号不同课程分数写到新表对应字段中.
再利用新表则ok
 
多人接受答案了。
 
后退
顶部