日期:2014-05-18 浏览次数:20710 次
第二个SET 也不能用,用select
create table facmachine
(
facid varchar(100),
machineid varchar(100),
num int
)
insert into facmachine select '1000 ', '100 ',10 union all
select '1000 ', '200 ',10 union all
select '2000 ', '100 ',100 union all
select '3000 ', '400 ',100
select * from facmachine
declare @sql nvarchar(1000)
set @sql = 'select facid as [机型] '
select @sql = @sql+ ', '''+machineid+ '''= sum(case machineid when '''+[machineid]+
''' then num else 0 end) '
from (select distinct machineid from facmachine) dd
set @sql = @sql+ ', sum(num) as [总计] from facmachine group by facid '
exec (@sql)
drop table facmachine
------解决方案--------------------
declare @sql nvarchar(1000)
set @sql = 'select facid [机型] '
set @sql = @sql+ ', ' ' '+machineid+ ' ' '= sum(case machineid when ' ' '+[machineid]+ ' ' ' then num else 0 end) ' from (select distinct machineid from facmachine) dd
set @sql = @sql+ ', sum(num) as [总计] from facmachine group by facid '
exec (@sql)
drop table facmachine
用 select
create table facmachine
(
facid varchar(100),
machineid varchar(100),
num int
)
insert into facmachine select '1000 ', '100 ',10 union all
select '1000 ', '200 ',10 union all
select '2000 ', '100 ',100 union all
select '3000 ', '400 ',100
select * from facmachine
declare @sql nvarchar(1000)
set @sql = 'select facid [机型] '
select @sql = @sql+ ','''+machineid+ '''= sum(case machineid when '''+[machineid]+ ''' then num else 0 end) ' from (select distinct machineid from facmachine) dd
set @sql = @sql+ ', sum(num) as [总计] from facmachine group by facid '
exec (@sql)
drop table facmachine
------解决方案--------------------
declare @sql nvarchar(1000) set @sql = 'select facid [机型]' select @sql = @sql+ ', sum(case machineid when ''' + machineid + ''' then num else 0 end) ['+machineid+']' from (select distinct machineid from facmachine) dd set @sql = @sql+ ', sum(num) as [总计] from facmachine group by facid ' exec (@sql)
------解决方案--------------------
declare @sql nvarchar(1000)
set @sql = 'select facid [机型] '
select @sql = @sql+ ', '''+machineid+ '''= sum(case machineid when '''+[machineid]+ ''' then num else 0 end) ' from (select distinct machineid from facmachine) dd
set @sql = @sql+ ', sum(num) as [总计] from facmachine gro