成绩表字段如下
ID CourseID studentID 考试时间 成绩 班级ID 现能否在VB的 Datagrid 中实现如下形式的显示结果(某班某学期成绩)
编号 studentID 课程名1 课程名2 ... 总分 平均分 名次
课程名在另一个表中
我用ADO控件实现,编号,名次,条件(WHERE)将如何增加以下是他们放过来的,但是编号,与名次未有解决
declare @s varchar(8000)select @s = isnull(@s+',','') + '[CourseID('+ltrim(CourseID)+')]=max(case when CourseID = '+
ltrim(CourseID) + ' then Score else 0 end)'
from (select distinct CourseID from Scores ) aexec(' select studentID,'+@s+',总分=sum(Score) ,平均分= avg(Score) from Scores group by studentID order by sum(Score) desc')在SQL中查询没问题,但是在VB中就不行了
ID CourseID studentID 考试时间 成绩 班级ID 现能否在VB的 Datagrid 中实现如下形式的显示结果(某班某学期成绩)
编号 studentID 课程名1 课程名2 ... 总分 平均分 名次
课程名在另一个表中
我用ADO控件实现,编号,名次,条件(WHERE)将如何增加以下是他们放过来的,但是编号,与名次未有解决
declare @s varchar(8000)select @s = isnull(@s+',','') + '[CourseID('+ltrim(CourseID)+')]=max(case when CourseID = '+
ltrim(CourseID) + ' then Score else 0 end)'
from (select distinct CourseID from Scores ) aexec(' select studentID,'+@s+',总分=sum(Score) ,平均分= avg(Score) from Scores group by studentID order by sum(Score) desc')在SQL中查询没问题,但是在VB中就不行了
解决方案 »
- 自己发的贴子不知道怎么修改
- 请问如何获得系统文件夹Documents and Settings\user下面的目录啊
- 远程访问数据库出现的问题?
- Adodc不定时出现“连线失败”,但重新refresh Adodc后又可以连接了,何解?大侠们救救我吧(請看詳細)
- 我怎样才能够把Html文件加到MSHTML的Document对象中去?
- 关于调色板的问题
- 用GDI的API在同一地方输出文本,怎么清除其一次的输出?
- 求visual Basic 6.0中文版下载地址
- MScomm控件的问题,高分悬赏,谢谢
- Gis符号编辑控件 如附件的图所示(类似游标的那个)
- 如何用VB关联程序
- 求教VB&FLASH双向通讯?
ADOclass.CommandType = adCmdText
strSQL = "declare @s varchar(8000)"
strSQL = strSQL + " select @s = isnull(@s+',','') + '[CourseID('+ltrim(CourseID)+')]=max(case when CourseID = '+" (VB代码里为一行,接max后面)
strSQL = strSQL + "ltrim(CourseID) + ' then Score else 0 end)'"
strSQL = strSQL + "from (select distinct CourseID from Scores ) a"
strSQL = strSQL + "exec(' SELECT StudentID,'+@s+',SUM(Score) AS 总分 , AVG(Score) AS 平均分 FROM Scores GROUP BY StudentID ORDER BY SUM(Score) DESC')"
ADOclass.RecordSource = strSQL
ADOclass.Refresh
Set dgClass.DataSource = ADOclass
运行就是不对
VB中不能这样写,你写在存储过程中,VB调用存储过程
编号,名次,条件(WHERE)?
SQL数据库不是有存储过程吗?你将SQL中查询能通过的代码,写成SQL数据库中的存储过程,然后VB直接调用这个存储过程
应该把WHERE 条件语句放在存储过程那个位置