这条语句用参数为什么不可以?
Table1
StudNo zhuanye nianji kecheng zhuanyeke
1 CG 一年级 设计 CG专业课
1 CG 一年级 创艺 CG专业课
2 BA 二年级 营销 BA专业课
3 CG 三年级 英语 CG基础课
4 CG 一年级 素描 CG专业课
4 CG 一年级 摄影 CG专业课
如何查出不同的学生,符合下面条件:
必须nianji为一年级,zhuanye为CG,所选专业课zhuanyeke(为CG专业课)数> =2的不同学生,列表后如下:
StudNo zhuanye zhuanyeke
1 CG CG专业课
4 CG CG专业课
SQL语句如下:
如果直接在数据库中写可以直接查询出,
select distinct StudNo,zhuanye,zhuanyeke from tablename where StudNo
in(select StudNo from tablename group by StudNo having count(*)> =2) and
nianji= '一年级 ' and zhuanye= 'CG '
如果在ADOQuery1中用参数并已连好数据库,参数返回值的字段数却为0
select distinct StudNo,zhuanye,zhuanyeke from tablename where StudNo
in(select StudNo from tablename group by StudNo having count(*)> =2) and
nianji=:nianji and zhuanye=:zhuanye
请问这是为何?
------解决方案--------------------
declare @nianji as varchar(10)
set nianji = '一年级 '
declare @zhuanye as varchar(10)
set zhuanye = 'CG '
select distinct StudNo,zhuanye,zhuanyeke from tablename where StudNo
in(select StudNo from tablename group by StudNo having count(*)> =2) and
nianji=@nianji and zhuanye=@zhuanye