报表问题!(200分)(100分)

  • 主题发起人 主题发起人 黑星
  • 开始时间 开始时间

黑星

Unregistered / Unconfirmed
GUEST, unregistred user!
数据库如下:
姓名 科目 成绩
aa 数学 80
aa 语文 55
bb 数学 63
bb 语文 65
aa 物理 47
bb 物理 52
aa 化学 78
bb 化学 58
用quick report控件做报表
用group header,detail,group footer
group header 中用‘姓名’分类
要求 group footer 显示一些统计信息,
aa {group header}
数学 80
语文 55
物理 47
化学 78
总科数: 4 及格科数: 2 不及格科数: 2(group footer)
bb(group header)
数学 63
语文 65
物理 52
化学 58
总科数: 4 及格科数: 2 不及格科数: 2(group footer)
总科数可以很容易得到,用QRexpr控件用count函数就可以了。
问题是:其他两个及格和不及格的怎样统计?
 
写一个查询来解决。 然后用报表输出此查询
 
select 姓名,count(成绩) as 及格科数 from table1 where 成绩 >= 60 group by 姓名
select 姓名,count(成绩) as 不及格科数 from table1 where 成绩 < 60 group by 姓名
 
改一下表结构,加一个flag及格1不及格0
sum(flag)->j及格
-sum(flag-1)不及格
 
select 姓名,count(成绩) as 及格科数 from table1 where 成绩 >= 60 group by 姓名
select 姓名,count(成绩) as 不及格科数 from table1 where 成绩 < 60 group by 姓名
同意楼上的大哥!
 
查询我都会写,我说的是怎样做这样的报表!
 
要使用主从表,
select distinct 姓名 From ... 做主表,
原来的表做从表
 
呵呵,不一定要用SQL。在成绩的Onprint中做二个计数器,一个当合格是加一,一个是不合格是加一,
在GroupFooter,放两个QrLabel(类名记得不知有没有错^&amp;^)就可以了,在它的Onprint,
Value:=Format('及格科数:%d',I);I为及格计数器,不合格的当然一样了!
 
多人接受答案了。
 

Similar threads

后退
顶部