sql server中总是出没有标明变量有错

陈大大的小迷妹 2016-12-23 11:04:49
这里是源代码:
--各门课程各个分数的人数
--定义变量
declare @count int
declare @i int
declare @gra float
declare @rs int
declare @sql varchar(8000)
declare @grade_cursor cursor
--给变量附初始值
set @sql=''
set @i = 0
set @grade_cursor = cursor local scroll for
select distinct GRADE as gra,count(*) as rs
from sc
group by GRADE
--打开游标
open @grade_cursor

set @count = @@cursor_rows

if(@count<=0)
begin
print '没有记录'
end
else
begin
while(@i<@count-300)
begin
fetch @grade_cursor into @gra,@rs
set @sql =@sql+ '(select COUNT(*)
from sc
where sc.CNO = a.CNO and GRADE= @gra) as ' + '@gra' +','
set @i = @i+1
end
fetch @grade_cursor into @gra,@rs

set @sql =@sql+ '(select COUNT(*)
from sc
where sc.CNO = a.CNO and GRADE= @gra) as ' + '@gra'

close @grade_cursor
print @sql
set @sql='select CNAME,' + @sql +'from (select sc.CNO,CNAME,GRADE
from sc,course
where sc.CNO = course.CNO) as a'

exec(@sql)
end
go

这里是报错:
(select COUNT(*)
from sc
where sc.CNO = a.CNO and GRADE= @gra) as @gra
消息 137,级别 15,状态 2,第 3 行
必须声明标量变量 "@gra"。
消息 156,级别 15,状态 1,第 5 行
关键字 'as' 附近有语法错误。

不知道为什么定义的@gra 变量没有办法正确的的显示值
...全文
1120 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
mysql 的 java 连接库 解压缩mysql-connector-java-5.1.30.zip 将要使用的是mysql-connector-java-5.1.30-bin-g.jar和mysql-connector-java-5.1.30-bin.jar 配置 在C:\Program Files\Java目录下建立mysqlforjdbc子目录,进入该目录将mysql-connector-java-5.1.30-bin.jar到该目录下 进入C:\Program Files\Java\jdk1.7.0_04\lib目录将mysql-connector-java-5.1.30-bin-g.jar拷贝到该目录下 然后配置classpath,追加%JAVA_HOME%\lib\mysql-connector-java-5.1.30-bin-g.jar;C:\Program Files\Java\mysqlforjdbc\mysql-connector-java-5.1.30-bin.jar;到该环境变量去 追加以后环境变量如下: CLASSPATH=%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;C:\Program Files\Apache Software Foundation\Tomcat5.5\common\lib\servlet-api.jar;%JAVA_HOME%\lib\mysql-connector-java-5.1.30-bin-g.jar;C:\Program Files\Java\mysqlforjdbc\mysql-connector-java-5.1.30-bin.jar; 配置这个的目的是让java应用程序找到连接mysql的驱动. 查看并启动MySQL服务 在Windows XP下安装完MySQL后,它就已经自动启动服务了,并且在开始菜单有其客户端的快捷方式连接 可以通过Windows的服务管理器查看。“开始”-“运行”,输入“services.msc”,回车。 弹Windows的服务管理器,然后就可以看见服务名为“mysql”的服务项了,其右边标明“已启动” 在开始菜单-所有程序-MySQL-MySQL Server 4.1-MySQL Command Line Client用客户端的快捷方式连接 输入安装是设置的密码即可 6.数据库的使用 Mysql安装完毕以后,在开始菜单-所有程序-MySQL-MySQL Server 4.1-MySQL Command Line Client用客户端的快捷方式连接 输入安装时设置的密码 使用mysql的基本命令(在mysql命令行编辑每输入完命令后最后一定要有分号) 显示数据库:show databases; 使用数据库:use 数据库名; 建库 在mysql里建一个数据库first,以及在数据库里建一个表about 命令:create database first; 为数据库设置权限(用户和密码) 命令:grant all privileges on first.* to test@localhost identified by “123456”; 当你执行完这个命令以后,只要你再以用户名:test,密码:123456登录时你就只可以对first这个数据库操作,这样避开使用root 输入命令:use first; 使用first数据库; 在first库建表 命令:create table about(id int(8) primary key,name varchar(10)); 在表假如数据: 命令:insert into about values('xyw1026','laojiang'); 退 命令:exit JSP连接mysql 在C:\Program Files\Apache Software Foundation\Tomcat5.5\webapps目录下建立子目录myapp 进入C:\Program Files\Apache Software Foundation\Tomcat5.5\webapps\myapp目录下 用记事本编写一个文件保存为first.jsp 代码如下: <%Class.forName("org.gjt.mm.mysql.Driver").newInstance(); Strin

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧