语法问题
declare @sql varchar(8000)
set @sql='select plevel'
select @sql=@sql+',['+dd+']=sum(case convert(varchar(10),workdate,120) when '''+dd+''' then Times*qty else 0 end)'
from (select distinct dd=convert(varchar(10),workdate,120) from tb) ss
set @sql=@sql+' from tb group by plevel'
exec(@sql)
我把上面的换成了下面的:
declare @sql varchar(8000)
set @sql='select plevel'
select @sql=@sql+',['+dd+']=sum(case convert(varchar(10),workdate,120) when '''+dd+''' then Times*qty else 0 end)'
from (select distinct dd=convert(varchar(10),workdate,120) from (Select a.* from(Select plevel,workdate,qty*times as ff from tb group by plevel,workdate,qty*times ) a where ff>500)) ss
set @sql=@sql+' from tb group by plevel'
exec(@sql)
就提示Incorrect syntax near ')'
我就是把倒数第三行的表tb换成了(Select a.* from(Select plevel,workdate,qty*times as ff from tb group by plevel,workdate,qty*times ) a where ff>500),这句语句执行没有问题的。为什么放在这里就出错了?
请高手帮忙!谢谢!
[解决办法]
- SQL code
declare @sql varchar(8000)set @sql='select plevel'select @sql=@sql+ ',['+dd+']=sum( case convert(varchar(10),workdate,120) when '''+dd+''' then Times*qty else 0 end )'from ( select distinct dd=convert(varchar(10),workdate,120) from ( Select a.* from ( Select plevel, workdate, qty*times as ff from tb group by plevel,workdate,qty*times ) a )tmp where ff>500 ) ssset @sql=@sql+' from tb group by plevel'exec(@sql)
[解决办法]
- SQL code
declare @sql varchar(8000)set @sql='select plevel'select @sql=@sql+',['+dd+']=sum(case convert(varchar(10),workdate,120) when '''+dd+''' then Times*qty else 0 end)'from ( select distinct dd=convert(varchar(10),workdate,120) from ( Select a.* from ( Select plevel,workdate,qty*times as ff from tb group by plevel,workdate,qty*times ) a where ff>500 ) ss) aaset @sql=@sql+' from tb group by plevel'