declare @s varchar(1000)
select @s='select addressid as 序号,address as 地区'
select @s=@s+',SUM(case when subject='''+subject+''' then 1 else 0 end )as '''+subject+'''' from gw_enter
group by subject select @s=@s+'
from (gw_enter inner join gw_address on address=addressname)
where condition is null group by address,addressid'
exec (@s)
---------------------------------------------------------上面语句正常运行.无异常.
但是加上搜索条件以后,出错.
where condition is null and pici=200712 group by address,addressid'
exec (@s)
--------------------
服务器: 消息 170,级别 15,状态 1,行 3
第 3 行: ',' 附近有语法错误。
---------------------
错误莫名其妙.理论上来说加这么一个条件应该是完全不影响的吧.求高手指点.
select @s='select addressid as 序号,address as 地区'
select @s=@s+',SUM(case when subject='''+subject+''' then 1 else 0 end )as '''+subject+'''' from gw_enter
group by subject select @s=@s+'
from (gw_enter inner join gw_address on address=addressname)
where condition is null group by address,addressid'
exec (@s)
---------------------------------------------------------上面语句正常运行.无异常.
但是加上搜索条件以后,出错.
where condition is null and pici=200712 group by address,addressid'
exec (@s)
--------------------
服务器: 消息 170,级别 15,状态 1,行 3
第 3 行: ',' 附近有语法错误。
---------------------
错误莫名其妙.理论上来说加这么一个条件应该是完全不影响的吧.求高手指点.
where condition is null and pici=' + ''200712'' + ' group by address,addressid'
----------------
declare @s varchar(1000)
select @s='select b.addressid as 序号,a.address as 地区'
select @s=@s+',SUM(case when subject='''+subject+''' then 1 else 0 end )as '''+subject+'''' from gw_enter
group by subject select @s=@s+'
from (gw_enter a inner join gw_address b on a.address=b.addressname)
where a.condition is null and a.pici=200712 group by a.address,b.addressid'
exec (@s)
------------------------------
服务器: 消息 170,级别 15,状态 1,行 3
第 3 行: 'g' 附近有语法错误。
---------------------
我就算是加个and 1=1 还是出错.
1000太短.
当运行过程中.
每一次执行时,语句加长.
超过1000.
所以.
修改成declare @s varchar(8000)
就可以了./
感谢LS