--//
--//算法说明:改算法的原理是,先通过一个SQL语句从数据库表中查询所有的结果放在临时表中,
--//然后再从临时表中读取用户所需的相关数据(@condition为用户输入的查询条件)
--//
DECLARE @condition varchar
--//创建临时表
create table #Classes_Info
(
classSpecialty varchar(50),
courseID char(6),
courseName varchar(20),
coursePeriod int , --//问题所在
courseCredit int , --//问题所在
courseKind int,--//问题所在
courseDescribe varchar(50)
)
begin
--//按条件将数据库中所相关数据插入临时表
insert into #Classes_Info
select distinct ClassesInfo.classSpecialty as '专业类别',Courses.courseID as '课程编号',Courses.courseName as '课程名称',Courses.coursePeriod as '课程学时',Courses.courseCredit as '课程学分',课程类别=
case courseKind
WHEN 0 THEN '公共课'
WHEN 1 THEN '专业课'
WHEN 2 THEN '选修课'
END,Courses.courseDescribe
from Courses,ClassesInfo
where not exists(select distinct studentCourseID
from StudentCoursesInfo
where not exists(select distinct studentID
from StudentsInfo
wherestudentClassID=classID))
order by classSpecialty
END
--//从临时表中读取用户所需的数据信息
select *
from #Classes_Info
where classSpecialty='"+condition+"' or courseID='"+condition+"' or courseName='"+condition+"' or
courseKind='"+condition+"'
order by classSpecialty
drop table#Classes_Info
在查询分析器里执行是提示:'courseCredit' 附近有语法错误,我想可能是类型转换时出了问题,望各位大虾帮忙指点。
如果不用临时表,有没有其他解决方案…………
请多多指教!在下谢过……
QQ:284074197
|