declare @sql varchar(8000)
set @sql='select aa '
select @sql=@sql+',sum(case bb when bb then cc end ) as bb '
from (select distinct bb from table) as a
select @sql=@sql+'group by aa'
print @sql
exec(@sql)
set @sql='select aa '
select @sql=@sql+',sum(case bb when bb then cc end ) as bb '
from (select distinct bb from table) as a
select @sql=@sql+'group by aa'
print @sql
exec(@sql)
as
declare @sql varchar(8000)
set @sql='select companyid '
select @sql=@sql+',sum(case town when town then townnum end ) as town '
from (select distinct town from town_num) as aaaa
select @sql=@sql+'group by companyid'
print @sql
exec(@sql)----------------------------
命令成功完成。然后运行declare @sql varchar(8000)
set @sql='select companyid '
select @sql=@sql+',sum(case town when town then townnum end ) as town '
from (select distinct town from town_num) as aaaa
select @sql=@sql+'group by companyid'
print @sql
exec(@sql)这样就出问题了。为什么,哪里错了??
出错提示?
set @sql='select companyid '
select @sql=@sql+',sum(case town when town then townnum end ) as town
from (select distinct town from town_num) as aaaa'
select @sql=@sql+' group by companyid'
print @sql
exec(@sql)
set @sql='select companyid '
select @sql=@sql+',sum(case town when '+cast(town as varchar)+' then townnum end ) as town
from (select distinct town from town_num) as aaaa'
select @sql=@sql+' group by companyid'
print @sql
exec(@sql)你看看sql语句做改变就可以了
create table temp1
(
aa varchar(20),
bb varchar(20),
cc numeric(9)
)insert into temp1 values('博路','城区',25)
insert into temp1 values('博路','石龙',50)
insert into temp1 values('博路','大良',23)
insert into temp1 values('国信','城区',40)
insert into temp1 values('国信','长安',32)
select * from temp1declare @sql varchar(8000)
set @sql='select aa '
select @sql=@sql+',isnull(sum(case bb when '''+a.bb+''' then cc end ),0) as '+a.bb
from (select distinct bb from temp1) as aselect @sql=@sql+' from temp1 group by aa'
print @sql
exec(@sql)