CREATE   PROC sp_select 
@specialty varchar(20),
@grade varchar(20),
@semester varchar(20),
@class1 varchar(20)
AS
begin
declare @s varchar(8000)set @s = 'select a.stu_ID as "学号",a.stu_name as "姓名"  '+',['+b.course_name+']=max(case b.course_ID when '+rtrim(a.course_ID)+' then b.course_score end)' 
from 
    course_fix a,course b 
where 
    a.course_ID = b.course_ID 
    and 
    a.stu_specialty = @specialty       --从课程确定表选择符合专业条件的课程信息
    and 
    a.stu_grade = @grade               --从课程确定表选择符合年级条件的课程信息
    and
    a.semester = @semester         --从课程确定表选择符合学期条件的课程信息
    
+' from stu_info a,scoret b where' 
         +' a.stu_ID=b.stu_ID '
        +' and a.stu_specialty ='''+@specialty+''''    --从stu_info表筛选符合专业条件的学生信息
 +' and a.stu_grade ='''+@grade    +'''' --从stu_info表筛选符合年级条件的学生信息
         +' and a.stu_class ='''+@class1    +'''' --从stu_info表筛选符合班级条件的学生信息
 +' and b.semester      ='''+@semester +''''    --从scoret   表筛选符合学期条件的成绩信息
         +' group by a.stu_ID,a.stu_name'exec (@s)
end

解决方案 »

  1.   

    服务器: 消息 156,级别 15,状态 1,过程 sp_select,行 11
    在关键字 'from' 附近有语法错误。
      

  2.   

    createt proc ddd
    set @specialty   = ''  --专业
    set @grade       = ''  --学年
    set @semester    = ''  --学期
    set @class1 = ''  --班级
    as 
    begin
    declare @s varchar(8000)
    set @s='select a.stu_ID as "学号",a.stu_name as "姓名"'select 
        @s=@s+',['+course_name+']=max(case b.course_ID when '+rtrim(a.course_ID)+' then b.course_score end)' 
    from 
        course_fix a,course b 
    where 
        a.course_ID = b.course_ID 
        and 
        a.stu_specialty = @specialty       --从课程确定表选择符合专业条件的课程信息
        and 
        a.stu_grade = @grade               --从课程确定表选择符合年级条件的课程信息
        and
        a.semester = @semester         --从课程确定表选择符合学期条件的课程信息
         --从课程表选择符合课程种类条件的课程信息set @s=@s+' from stu_info a,scoret b where' 
             +' a.stu_ID=b.stu_ID '
             +' and a.stu_specialty ='''+@specialty+''''    --从stu_info表筛选符合专业条件的学生信息
             +' and a.stu_class ='''+@class1   +''''
     +' and b.semester      ='''+@semester +''''    --从score   表筛选符合学期条件的成绩信息
             +' group by a.stu_ID,a.stu_name'--print @sexec(@s)end