笨鸟1点思路都没有,不知道应该用什么方法实现,所以就把整个问题
全盘托出,望众大侠救命!!!!!!!!!SQL-SERVER中用到如下3张表:表1
学号 姓名 系别
001 AA 数学系
002 BB 物理系
003 CC 数学系
004 DD 数学系
005 EE 化学系
。
。
。表2
学号 课程代号 成绩 备注
001 111111 80
001 333333 70
002 222222 60
003 333333 病假
004 111111 60 补考
。
。
。表3
课程代号 课程名称
111111 邓论
222222 计算机基础
333333 高数1
。
。
。想实现如下报表:
先选择出系别,然后查询出系成绩单汇总。排序要求:首先按学号大小把学生排序,然后是按课程代号大小排序;
如果该学生在该课程没有成绩和备注则在相应的位置什么都不显示。
数学系成绩单汇总 (课程代号)| 1111111 | 222222 | 333333 | 。。
学号 | 姓名 | (课程名称)| 邓论 | 计算机| 高数1 | 。。
001 | aa | .........| 80 | 70 | | 。
003 | cc | | | | 病假| 。
004 | dd | ...........| 60 补考 | | | 。
。
。
。
。
请诸位尽量给出详细代码。跪谢了先~~~~~ :~)
全盘托出,望众大侠救命!!!!!!!!!SQL-SERVER中用到如下3张表:表1
学号 姓名 系别
001 AA 数学系
002 BB 物理系
003 CC 数学系
004 DD 数学系
005 EE 化学系
。
。
。表2
学号 课程代号 成绩 备注
001 111111 80
001 333333 70
002 222222 60
003 333333 病假
004 111111 60 补考
。
。
。表3
课程代号 课程名称
111111 邓论
222222 计算机基础
333333 高数1
。
。
。想实现如下报表:
先选择出系别,然后查询出系成绩单汇总。排序要求:首先按学号大小把学生排序,然后是按课程代号大小排序;
如果该学生在该课程没有成绩和备注则在相应的位置什么都不显示。
数学系成绩单汇总 (课程代号)| 1111111 | 222222 | 333333 | 。。
学号 | 姓名 | (课程名称)| 邓论 | 计算机| 高数1 | 。。
001 | aa | .........| 80 | 70 | | 。
003 | cc | | | | 病假| 。
004 | dd | ...........| 60 补考 | | | 。
。
。
。
。
请诸位尽量给出详细代码。跪谢了先~~~~~ :~)
解决方案 »
- 用treeview显示数据库内容
- 图片中的数字提取
- TREEVIEW的简单问题。。
- 一个时间格式转换问题
- space()找不到库,要引用哪个库啊?
- 我要写一个仓库的管理软件,准备用VB+ADO,大家谁有这方面的例子,能不能发给我看看?
- 一个快捷键的问题!
- 谁有将tiff转换成jpg的子程序或者控件或者dll? 2000分!提供有价值的线索也可得到。
- ActiveX DLL 如何利用winsock发送数据?
- 如何保存、新建文本文件
- !!!怎样在VB中写(创建)DirectShow的Filter???
- 用datareport是不是不能控制是否打印成功,如果我想创建有流水号的单据比如发票(保证唯一性),datareport能胜任吗?现在的情况是用户可
http://blog.csdn.net/lihonggen0/archive/2003/05/26/13634.aspx
Dim adoRecordsetX As New ADODB.RecordsetPrivate Sub DataReport_Initialize()
'printer.Orientation =
'以下准备数据源(记录集)
'要打印的数据源(记录集)必须是一个全局级别的,或者是本设计器模块级别的记录集
'数据库使用的是 Northwind.mdb
adoConnectionX.Open "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & App.Path & "\Northwind.mdb"
adoRecordsetX.Open "select * from 产品", adoConnectionX
Set DataReport1.DataSource = adoRecordsetX '设置 DataReport 的数据源
'-------------------------------------------------------------------------
'以下根据控件所在区域(Sections)和所属控件类别等将它们分成若干集合
End SubSQL用李版主给你的方法取得!!
declare @sql varchar(8000)
set @sql = 'select 学号,'
select @sql = @sql + 'sum(case 课程代号 when '''+课程代号+'''
then 成绩 else 0 end) as '''+课程代号+''','
from (select distinct 课程代号 from uSelectClass ) as a
select @sql = left(@sql,len(@sql)-1) + ' from uSelectClass group by 学号'
exec(@sql)
go我要在查询uSelectClass表中加入条件:
where uSelectClass.学年度='2003-2004学年度第2学期'现在不知道应该加在哪里才能起作用,继续帮忙啊!!!!! :)
where 学年度=''2003-2004学年度第2学期'' group by 学号'
set @sql = 'select 学号'
select @sql = @sql + ',sum(case 课程代号 when '''+课程代号+'''
then 成绩 else null end) as '''+课程代号+''''
from (select distinct 课程代号 from uSelectClass where uSelectClass.学年度='2002-2003学年度第1学期'
) as a
select @sql = @sql + ' from uSelectClass where uSelectClass.学年度=''2002-2003学年度第1学期'' group by 学号'
exec(@sql)
go现在语句这样了,但是当我查询学年度为2003-2004学年度第2学期的数据时,也就是把查询语句改为
declare @sql varchar(8000)
set @sql = 'select 学号'
select @sql = @sql + ',sum(case 课程代号 when '''+课程代号+'''
then 成绩 else null end) as '''+课程代号+''''
from (select distinct 课程代号 from uSelectClass where uSelectClass.学年度='2003-2004学年度第2学期'
) as a
select @sql = @sql + ' from uSelectClass where uSelectClass.学年度=''2003-2004学年度第2学期'' group by 学号'
exec(@sql)
go以后,查询分析器总是提示:
服务器: 消息 105,级别 15,状态 1,行 74
字符串 '4106314' 之前有未闭合的引号。
服务器: 消息 170,级别 15,状态 1,行 74
第 74 行: '4106314' 附近有语法错误。注:4106314是数据库中课程代号的前一部分,课程代号长度总共12位。不知道是哪里出现问题了
:( 真费劲啊!!!!!!!!!!!!!!!!!!!!!