使用Gridview绑定SQL存储过程出现问题..
create proc cj_data
@p_cj_bid int
as
begin
declare @sql varchar(8000)
set @sql= 'select cj_name as 姓名,cj_xh as 学号, '
select @sql=@sql+ '[ '+km_name+ ']=sum(case when cj_kmid= ' ' '+km_dh+ ' ' ' then cj_cj else 0 end), '
from (select distinct km_name,km_dh from jw_cj a join jw_km b on a.cj_kmid=b.km_dh and a.cj_bid=@p_cj_bid) a
set @sql=substring(@sql,1,len(@sql)-1)
set @sql=@sql+ ' from jw_cj where cj_bid=@p_cj_bid group by cj_name,cj_xh '
exec(@sql)
end
go
测试查询的时候出现 必须声明变量 '@p_cj_bid '
求一正确方法.
------解决方案----------------------try
create proc cj_data
@p_cj_bid int
as
begin
declare @sql varchar(8000)
set @sql= 'select cj_name as 姓名,cj_xh as 学号, '
select @sql=@sql+ '[ '+km_name+ ']=sum(case when cj_kmid= ' ' '+km_dh+ ' ' ' then cj_cj else 0 end), '
from (select distinct km_name,km_dh from jw_cj a join jw_km b on a.cj_kmid=b.km_dh and a.cj_bid=@p_cj_bid) a
set @sql=substring(@sql,1,len(@sql)-1)
set @sql=@sql+ ' from jw_cj where cj_bid= '+@p_cj_bid+ ' group by cj_name,cj_xh '
exec(@sql)
end
go