我现用的是delphi6.0QREPORT做一个报表要求格式如下
语文 数学 英语 化学
张三 80 76 90 85
李四 54 56 90 45
....
这样一个报表格式
我数据库表为两个表一个为学习课目,包括一个字段课目名称及上面的表头语文、数学、英语、化学
另一个表为学生成绩表包括字段为学生名字、学习课目名称、课目成线这几个字段,请问怎么成为这样的一个报表,请大家帮忙解决一下,是不是要改表结构,还请指教一下,我现在数据库是一下竖列表数据我现在要的是一个横的表数据,请多提 宝贵意见,多谢!!!
语文 数学 英语 化学
张三 80 76 90 85
李四 54 56 90 45
....
这样一个报表格式
我数据库表为两个表一个为学习课目,包括一个字段课目名称及上面的表头语文、数学、英语、化学
另一个表为学生成绩表包括字段为学生名字、学习课目名称、课目成线这几个字段,请问怎么成为这样的一个报表,请大家帮忙解决一下,是不是要改表结构,还请指教一下,我现在数据库是一下竖列表数据我现在要的是一个横的表数据,请多提 宝贵意见,多谢!!!
--测试表及数据
create table grade(id int identity(1,1) primary key, name varchar(10) , subject varchar(50) ,grade decimal)
create table subject(subject varchar(50) primary key)insert into subject values('math')
insert into subject values('Eng.')
insert into subject values('Chi.')
insert into subject values('chem.')insert into grade values('yuan', 'math', 100)
insert into grade values('yuan', 'Eng.', 70)
insert into grade values('yuan', 'Chi.', 80)
insert into grade values('yuan', 'chem.', 90)--存储过程脚本内容
declare @Sql nvarchar(4000)set @Sql = 'select name 'select @Sql = @Sql + ', sum(case subject when ''' + subject + ''' then grade else 0 end) as [' + subject + ']'
from subject
order by subjectprint @Sql set @Sql = @Sql + ' into ##result from grade group by name'print @Sql exec(@Sql)select * from ##result
from subject
order by subject这句我不明白是什么意思,老哥,能否指教一下,多谢
select name , sum(case subject when 'chem.' then grade else 0 end) as [chem.], sum(case subject when 'Chi.' then grade else 0 end) as [Chi.], sum(case subject when 'Eng.' then grade else 0 end) as [Eng.], sum(case subject when 'math' then grade else 0 end) as [math]
***************************************************************************
select name , sum(case subject when 'chem.' then grade else 0 end) as [chem.], sum(case subject when 'Chi.' then grade else 0 end) as [Chi.], sum(case subject when 'Eng.' then grade else 0 end) as [Eng.], sum(case subject when 'math' then grade else 0 end) as [math] into ##result from grade group by name
目的就是产生第一句语句拉