set @s=''Select @s=@s+','+quotename(rtrim([khmc]))+'=sum(case when rtrim([khmc])='+quotename(rtrim([khmc]),'''')+' then sl else null end)' from xsckd t1 where khbh in (select khbh from khbh where khlb=''+rtrim(@khlb)+'') group by [khmc]改成这样呢?
调试欢乐多
@khlb varchar(20),
@stime varchar(20),
@etime varchar(20),
@khbh1 varchar(50),
@khbh2 varchar(50)
AS
declare @s nvarchar(4000)
declare @s1 nvarchar(500)
declare @s2 nvarchar(500)set @s1='where f1=''1'' and khbh in (select khbh from khbh where khlb='''+rtrim(@khlb)+''')'
set @s2=' where f1=''1'''
if @stime<>''
begin
set @s1=@s1+' and convert(datetime,xsrq)>='''+@stime+''''
set @s2=@s2+' and convert(datetime,xsrq)>='''+@stime+''''
end
if @etime<>''
begin
set @s1=@s1+' and convert(datetime,xsrq)<='''+@etime+''''
set @s2=@s2+' and convert(datetime,xsrq)<='''+@etime+''''
endif @khbh1<>''
set @s1=@s1+' and khbh >='''+@khbh1+''''if @khbh2<>''
set @s1=@s1+' and khbh <='''+@khbh2+''''set @s=''Select @s=@s+','+quotename(rtrim([khmc]))+'=sum(case when rtrim([khmc])='+quotename(rtrim([khmc]),'''')+' then sl else 0 end)' from xsckd t1 where khbh in (select khbh from khbh where khlb=''+rtrim(@khlb)+'') group by [khmc]select 'select [cpbh] as 编号,[cpmc] as 产品名称'+@s+',[小计]=sum([sl]) from xsckd '+@s1+'group by [cpbh],[cpmc]'