| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 597 人关注过本帖
标题:请教一个SQL存储过程的问题
只看楼主 加入收藏
qlong0728
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:272
专家分:0
注 册:2007-6-15
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
请教一个SQL存储过程的问题
例:
CREATE proc cpoutquery
@dh varchar(50),@dhs int,@bh varchar(50),@bhs int,@ssdw varchar(50),@ssdws int,@qw varchar(50),@qws int,@cw varchar(50),@cws int,@kh varchar(50),@khs int,
@sh varchar(50),@shs int,@mq varchar(50),@mqs int,@rq varchar(200),@mc varchar(100)
as
set @rq=" and s_outczrq>= '2009-08-05' and s_outczrq<= '2009-08-05'"
select s_outdh,s_fty_id,s_mqty,s_part_no,s_desc,s_out_qty,s_outczrq,s_to_id,s_qw,s_to1_id,s_number,s_po_no,s_id
from s_stdn  with (index=s_stdn_out)
where   substring(s_outdh,1,@dhs) = @dh and substring(s_part_no,1,@bhs)=@bh and substring(s_to1_id,1,@ssdws)=@ssdw
and substring(s_qw,1,@qws)=@qw and substring(s_to_id,1,@cws)=@cw and substring(s_fty_id,1,@khs)=@kh and substring(s_number,1,@shs)=@sh
and substring(s_mqty,1,@mqs)=@mq and s_out_qty<>0 + @rq
GO
运行后报错:
将 varchar 值 ' and s_outczrq>= '2009-08-05' and s_outczrq<= '2009-08-05'' 转换为数据类型为 int 的列时发生语法错误。

请问怎样解决!
其实@rq是程序中的变量
在这里set @rq=" and s_outczrq>= '2009-08-05' and s_outczrq<= '2009-08-05'"只是举一个值 @rq等于=" and s_outczrq>= '2009-08-05' and s_outczrq<= '2009-08-05'"的例子.
搜索更多相关主题的帖子: SQL 
2009-08-06 15:44
Mo诫
Rank: 4
等 级:业余侠客
帖 子:80
专家分:223
注 册:2009-7-29
收藏
得分:14 
and substring(s_mqty,1,@mqs)=@mq and s_out_qty<>0 + @rq

0+@rq??  0是int @rq代表的是varchar啊!
2009-08-07 10:41
快速回复:请教一个SQL存储过程的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015076 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved