要求是每个学生的费用都显示。具体做法是:先查学生表查出其序号,然后根据序号
查科目表,看他选了几门课,然后去查课程表,看该课费用是多少,然后将该学生所有课程费用相加,得出该学生总的学费。同时用此学费减去费用表中的该学生实际所交的学费(按序号排列),得出其欠余费用。并通过DBGrid显示出来。
请问如何实现这个功能。(我的想法是,先查出序号,然后根据序号来查询费用,然后用一个循环计算总的学费,将此学费写入费用表中。最后在显示时用实际费用减去循环计算所得的费用,但不知道怎么更新费用表中的数据)
3 个解决方案
#1
能否把你大概的几个用到的表的结构写出来,我帮你分析一下吧!
#2
大概是这样吧
学生表 S1
科目表 S2
课程表 C
费用表 F
select s1.no,sum(C.fee)-F.fee
from s1,s2,C,F
where s1.no=s2.no
and s2.sno=C.sno
and s1.no=F.no
group by s1.no,F.fee
学生表 S1
科目表 S2
课程表 C
费用表 F
select s1.no,sum(C.fee)-F.fee
from s1,s2,C,F
where s1.no=s2.no
and s2.sno=C.sno
and s1.no=F.no
group by s1.no,F.fee
#3
和上面写的差不多,主要是如何按序号定位,然后写到表里去
#1
能否把你大概的几个用到的表的结构写出来,我帮你分析一下吧!
#2
大概是这样吧
学生表 S1
科目表 S2
课程表 C
费用表 F
select s1.no,sum(C.fee)-F.fee
from s1,s2,C,F
where s1.no=s2.no
and s2.sno=C.sno
and s1.no=F.no
group by s1.no,F.fee
学生表 S1
科目表 S2
课程表 C
费用表 F
select s1.no,sum(C.fee)-F.fee
from s1,s2,C,F
where s1.no=s2.no
and s2.sno=C.sno
and s1.no=F.no
group by s1.no,F.fee
#3
和上面写的差不多,主要是如何按序号定位,然后写到表里去