不知道你上一题是什么,大体这样:declare @sql nvarchar(1000)
set @sql='select @cw='+@cw_m+',@hl='+@hl_m+'
from brzz_cy
where 住院号='''+@bah+''' and 入院日期='''+@ryrq+''''
exec sp_executesql @sql,N'@cw 数据类型 output,@hl 数据类型 output',@cw output,@hl output如果入院日期是DATETIME类型,要做一些转换。如:convert 函数
set @sql='select @cw='+@cw_m+',@hl='+@hl_m+'
from brzz_cy
where 住院号='''+@bah+''' and 入院日期='''+@ryrq+''''
exec sp_executesql @sql,N'@cw 数据类型 output,@hl 数据类型 output',@cw output,@hl output如果入院日期是DATETIME类型,要做一些转换。如:convert 函数
解决方案 »
- sql server2000 如何按照记录录入顺序 排序显示 ?
- 关于触发器的问题.
- 数据表中数据排序的问题,谁先帮解决100分送上!
- 急:从SQL2000数据库读写图片问题
- 一个公司要考验我的问题,各位大哥帮忙呀(等待中)
- 关于两台电脑的MySql数据库双向同步问题!急求高手解答
- 我要在SQL数据库中查询出身份证号码中的出生日期(有15位的,也有18位的),或者是查询出某一时间范围内的数据,怎么写代码啊?
- 怎么把存储过程中的返回值放到数据库里?
- SQL Server2000中关于自动增长的字段的问题
- 请教存储过程中字段的数据类型为text的问题?
- 请教:怎么样建立一个满足如下要求的表??(详细见内)
- 请教高手
@ryrq datetime,@hl_m Nvarchar(10),@hl decimal (10,2)
set @k='床位费'
set @bah =
set @ryrq=
set @sql=N'select ' + ''' @cw '''+ '= '+ @cw_m +', ' +''' @hl ''' + @hl_m +' from brzz_cy where 住院号='+ cast(@zybh as nvarchar(10)) + ' and '+ ' lrrq > '+ convert(nvarchar(20),@ryrq,121)
EXECUTE sp_executesql @sql ,N'@cw decimal output,@hldecimal output',@ output
,@hl output
declare @cw int
declare @hl int
declare @cw_m varchar(10)
declare @hl_m varchar(10)
set @cw_m = ...
set @hl_m = ...
set @sql='select @cw = '+ @cw_m + ', @hl = ' + @hl_m + 'from brzz_cy where 住院号= "' + @bah + '" and 入院日期 ="' + @ryrq + '"'
exec sp_executesql @sql, N'@cw int output, @hl int output', @cw output, @hl output
select @hl, @cw
1、
exec sp_executesql sql语句,参数列表,对应的参数... 如:declare @sql nvarchar(1000)
declare @cw int
declare @hl int
declare @cw_m varchar(10)
declare @hl_m varchar(10)
set @cw_m = 'count(zz)'
set @hl_m = 'sum(zz)'
set @sqlN=N'select @cw = '+ @cw_m + ', @hl = ' + @hl_m + 'from brzz_cy where 住院号=''' + @bah + ''' and 入院日期 =''' + @ryrq + ''''
exec sp_executesql @sql, N'@cw int output, @hl int output', @cw output, @hl output
select @hl, @cw
2、
在sql语句里你不最好不要用",用''来转义如:
select '''',''''''
zz应该是变量,利用sql语句获得费用的标准。即是@zz,而@zz是:@zz='床位费+保温费'。
从而执行你的sql语句后变成了:
select @cw =sum(@zz), @hl = sum(@zz1)
from brzz_cy
where 住院号='0000000005' and 入院日期 ='2002-10-01'
@zz没有变成'床位费+保温费'。
还望你指教,期待你的解答!
我再解释以下了,关系对照如下:
select @cw=床位费+保温费 select @cw=@cw_m
from brzz_cy from brzz_cy
@cw_m是变量,@cw_m=床位费+保温费,从而要获取@cw。
谢谢大家了!
declare @cw int
declare @cw_m varchar(10)
set @cw_m = '床位费+保温费'
set @sqlN=N'select @cw = sum('+@cw_m+') from brzz_cy where 住院号=''' + @bah + ''' and 入院日期 =''' + @ryrq + ''''
exec sp_executesql @sql, N'@cw int output, @hl int output', @cw output
select @cw
declare @sql nvarchar(1000)
declare @cw1 decimal(18,2)
declare @cw_m varchar(100)
declare @bah char(10)
declare @ryrq datetime
select @bah='0000000010'
select @ryrq='2002-10-10'
set @cw_m = '床位费+西药费'
set @sql=N'select @cw = sum('+@cw_m+') from brzz_cy where 住院号=''' + @bah + ''' and 入院日期 =''' + cast(@ryrq as char(20)) + ''''
exec sp_executesql @sql, N'@cw int output', @cw1 output
select @cw1
谢谢!