我想做一个学生缴费查询,我的缴费表里有ID,学号,姓名,班级,应交费用,已交费用这些列,我想在输入一个班的名字后把这个班的欠费人数统计出来,同时候在DBGIRD里显示出每个欠费学生的信息,在写sql语句的时候遇到一些问题,我的代码如下:
sql.add('select distinct 学号,姓名,sum(应交费用)-sum(已交费用) as 须补交费用 from jfb where 班级号=:bjh groud by 学号');
parameters.ParamByName('bjh').Value:=edit3.Text;
运行的时候说groud 附近有错误,请问该如何改?另外统计欠费人数也没什么概念,请各位指教!我是新学数据库开发的,写出来的东西也不怕大家笑话,只想得到解答,谢谢各位了
sql.add('select distinct 学号,姓名,sum(应交费用)-sum(已交费用) as 须补交费用 from jfb where 班级号=:bjh groud by 学号');
parameters.ParamByName('bjh').Value:=edit3.Text;
运行的时候说groud 附近有错误,请问该如何改?另外统计欠费人数也没什么概念,请各位指教!我是新学数据库开发的,写出来的东西也不怕大家笑话,只想得到解答,谢谢各位了
select 学号,姓名,应交费用-已交费用 as 须补交费用 from jfb where 班级号=:bjh不止一笔的话才用sum():
select 学号,姓名,sum(应交费用)-sum(已交费用) as 须补交费用 from jfb where 班级号=:bjh group by 学号,姓名'
统计欠费人数:(不止一笔要distinct 学号)
select count(学号) as 人数
from jgb
where 班级号=:bjh and 应交费用>已交费用
from jfb
where 班级号=:bjh
and 应交费用> 已交费用 ---加這行
group by 学号,姓名
统计欠费人数:
select count(distinct 学号) as 人数 ---用distinct,否則會有重復
from jgb
where 班级号=:bjh
and 应交费用> 已交费用 ----欠費的
(SELECT DISTINCT 学号,姓名,应交费用 FROM JFB) A,
(SELECT 学号,SUM(已交费用) AS 已交费用 FROM JFB GROUP BY 学号) B
WHERE A.学号=B.学号
AND A.应交费用-B.已交费用>0
(SELECT DISTINCT 学号,姓名,应交费用 FROM JFB WHERE 班级号=:bjh) A,
(SELECT 学号,SUM(已交费用) AS 已交费用 FROM JFB WHERE 班级号=:bjh GROUP BY 学号) B
WHERE A.学号=B.学号
AND A.应交费用-B.已交费用>0
parameters.ParamByName('bjh').Value:=edit3.Text;