SQL server 2000将查询结果以一句话的形式输出。题目在下面 20

创建一个存储过程“showscore”,它可以根据接收到的学生的姓名’李艳’按下列格式显示出该学生选的课程数,不及格课程数和平均成绩。结果:李艳同学一共选了1门课程,其中... 创建一个存储过程“showscore”,它可以根据接收到的学生的姓名’李艳’按下列格式显示出该学生选的课程数,不及格课程数和平均成绩。结果:李艳同学一共选了1门课程,其中有1门不及格 ,其平均成绩为25分 表在下面。表中数据不重要,根据需要修改。下面是我写的create procedure showscore@姓名 char(6) ,@str varchar(100) outputas declare @Count int,@uCount int,@AVG FLOATbeginselect @Count=count(课程号),@uCount=count(成绩) as 不及格的课程数 from SC where 学号 in(select 学号 from S where 姓名=@姓名) and 成绩<60 group by 学号select @AVG=AVG(成绩) from SC where 学号 in(select 学号 from S where 姓名=@姓名)Set @str=@姓名+'一共选修了'+cast(@Count as varchar(3))+'门课程,其中有'+cast(@uCount as varchar(3))+'门不及格'+'平均成绩为'+cast(@AVG as varchar(3))+'分'endEXEC showscore '李艳'@str output 展开
 我来答
雁西楼
科技发烧友

2016-05-31 · 有一些普通的科技小锦囊
知道小有建树答主
回答量:1118
采纳率:73%
帮助的人:408万
展开全部

核心查询这样写应该就可以了吧:

Select Cast(姓名  As varchar(20))
     + '同学一共选了'
     + Cast(Count(*) As varchar(12)) 
     + '门课程,其中有'
     + Cast(Sum(Case When 成绩<60 Then 1 Else 0 End) As varchar(12)) 
     + '门不及格 ,其平均成绩为'
     + Case(Avg(成绩) As varchar(12)) 
     + '分'
From ...
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式