请教sql语句中一个参数的写法。

来源:百度知道 编辑:UC知道 时间:2024/06/16 02:38:40
有这样一个存储过程
ALTER proc [dbo].[spGetBDass]
(@rroomid int
)
as

Declare @sql varchar(8000)
Set @sql = 'Select bdid as 标单编号'
Select @sql = @sql + ',sum(case Attru when '''+Attru+''' then Val else 0 end) ['+Attru+']'
from (select distinct Attru from NegoAttru where bdid in(Select id from NegoResu where RoomId=@rroomid)) as NegoAttru
Select @sql = @sql+' from NegoAttru where bdid in(Select id from NegoResu where RoomId=27) group by bdid '
Exec (@sql)

RoomId=27 的地方 想 改成RoomId=@rroomid 或者 RoomId='+@rroomid +'
等等结果都不对,请教高手,这个参数正确的格式。

看看我修改的,貌似楼主写的case when 语句有毛病~~~~

ALTER proc [dbo].[spGetBDass]
(@rroomid varchar(200)
)
as
declare @rroomid int
set @rroomid=1
Declare @sql varchar(8000)
Set @sql = 'Select bdid as 标单编号'
Select @sql = @sql + ',sum(case Attru when '''+Attru+''' then Val else 0 end) ['+Attru+']'
from (select distinct Attru from NegoAttru where bdid in(Select id from NegoResu where RoomId=@rroomid)) as NegoAttru
Select @sql = @sql+' from NegoAttru where bdid in(Select id from NegoResu where RoomId='''+@rroomid+''') group by bdid '
Exec (@sql)

RoomId=''+@rroomid +''
就可以了
在字符串里''等于一个' 你写一个肯定报错

类型问题吧
改成
RoomId='+convert(varchar(10),@rroomid)+'
试试看。
还有一点就是没给@rroomid 赋值

Roomld = ""+@roomid+""行吗?