执行SQL时,提示:必须声明标量变量 "@记帐时间"。 语句如下。在线求。

declare @住院号 nvarchar(10),@姓名 nvarchar(20),@年龄 decimal(11,0),@入院日期 datetime,@出院日期 datetime,
@记账时间 datetime,@收费明细序 nvarchar(12),@费用编码 nvarchar(10),@发生额 decimal(15,4),
@费用类别 nvarchar(4),@账目有效标 nvarchar(2),@记账次数 decimal(15,4),@收费标准编 nvarchar(9),
@收费标准 nvarchar(255),@单位 nvarchar(255),@id int
declare yb1 cursor
for
select [住院号],[姓名], [年龄],[入院日期],[出院日期],[收费明细序],[费用编码],[发生额],[记帐时间],
[费用类别],[账目有效标],[记账次数],[收费标准编],id,b.[收费标准],b.[单位]
from dbo.[住院收费汇总表2011-01-03] a
join dbo.[ECHO系统收费标准明细(11月19日)] b on a.费用编码=b.收费标准编码 where b.单位 like '%日%' or b.单位 like '%天%'
order by id
open yb1
fetch next from yb1 into @住院号,@姓名,@入院日期,@出院日期,@费用编码,@发生额,@记帐时间,@费用类别,@账目有效标,@记账次数,
@收费标准编,@id,@收费标准,@单位
while @@FETCH_STATUS=0
begin
insert into dbo.[ECHO系统住院重复收费记录] select [住院号],[姓名], [年龄],[入院日期],[出院日期],[收费明细序],[费用编码],[发生额],[记帐时间],
[费用类别],[账目有效标],[记账次数],[收费标准编],b.[收费标准],b.[单位]
from dbo.[住院收费汇总表2011-01-03] a
join dbo.[ECHO系统收费标准明细(11月19日)] b on a.费用编码=b.标准科目编码 where a.id<>@id
and a.住院号=@住院号 and a.姓名=@姓名 and a.发生额=@发生额 and a.费用类别=@费用类别
and CONVERT(varchar(10),a.入院日期,110)= CONVERT(varchar(10),@入院日期,110)
and CONVERT(varchar(10),a.出院日期,110)= CONVERT(varchar(10),@出院日期,110)
and CONVERT(varchar(10),a.记帐时间,110)= CONVERT(varchar(10),@记帐时间,110)
fetch next from yb1 into @住院号,@姓名,@入院日期,@出院日期,@费用编码,@发生额,@记帐时间,@费用类别,@账目有效标,@记账次数,
@收费标准编,@id,@收费标准,@单位
end
close yb1
deallocate yb1
已解决。字错了。“账”与“帐”的问题。谢谢

第1个回答  2013-12-04
declare .. @记账时间 datetime, ..

fetch next from yb1 into ..,@记帐时间, ..

两处的变量名称不一样本回答被提问者采纳
相似回答