在R表中有如下字段:Amt(numeri类型)、Reb(numeric类型)、id(nvarchar类型)、name(nvarchar类型)从R表中查找符合条件的Amt和Reb如果有字段为NULL则用isnull转换为0,然后再赋值给变量@Amt和@Reb,代码如下:
Declare @Amt
Declare @Reb
select @Amt = Amt,isnull(Amt,0) as Amt,@Reb = Reb,isnul(Reb,0) as Reb from R where id = '1010101' and name = 'GT'
print @Amt
print @Reb
然后就出错了,请问怎么改正?
------最佳解决方案--------------------
SELECT @Amt1 = ISNULL(Amt, 0) ,
@Reb1 = ISNULL(Reb, 0)
FROM R
WHERE id = '10001'
SELECT @Amt2 = ISNULL(Amt, 0) ,
@Reb2 = ISNULL(Reb, 0)
FROM R
WHERE id = '10002'
SELECT @Amt3 = ISNULL(Amt, 0) ,
@Reb3 = ISNULL(Reb, 0)
FROM R
WHERE id = '10003'
SELECT @Amt4 = ISNULL(Amt, 0) ,
@Reb4 = ISNULL(Reb, 0)
FROM R
WHERE id = '10004'
SELECT @Amt1 + @Amt2 + @Amt3 + @Amt4
------其他解决方案--------------------
申明变量:
Declare @Amt 变量类型
Declare @Reb 变量类型
你少了类型
------其他解决方案--------------------
[quote=引用:]
申明变量:
Declare @Amt 变量类型
Declare @Reb 变量类型
你少了类型
[quote]
版主,这不是错误所在,额,也是一个错误,但我加上类型仍然出错,有错误提示:
消息 141,级别 15,状态 1,第 3 行
向变量赋值的 SELECT 语句不能与数据检索操作结合使用。
这是加上类型后,仍然有错误!
------其他解决方案--------------------
Declare @Amt
Declare @Reb
select @Amt = isnull(Amt,0)t,@Reb =isnul(Reb,0) from R where id = '1010101' and name = 'GT'
print @Amt
print @Reb
------其他解决方案--------------------
你还得加上类型
------其他解决方案--------------------