declare @s varchar(8000)
set @s = ''
select @s = @s +',[month'+cast(month as varchar(2))+']= case month when '+month+' then amount else 0 end' from (select month from table group by month ) aexec('select mtlid '+@s+' from table group by mtlid ')
set @s = ''
select @s = @s +',[month'+cast(month as varchar(2))+']= case month when '+month+' then amount else 0 end' from (select month from table group by month ) aexec('select mtlid '+@s+' from table group by mtlid ')
解决方案 »
- 这种工资表怎么设计为好?太难了想出不来
- 哪里有批pc版本的coverflow效果下载啊
- 数据库设计问题请教下大家,大家来发表看法。
- 更新数据的方法,求大家给指点--重提
- 创建索引时报错:由于文件组 'fileGroup28 中的磁盘空间不足,无法为数据库 'db_touzhu' 分配新页。
- 请教高手!关于特殊表如何建立!在线等!
- sql server 2008中有求百分位的函数吗?
- 关于赋值问题
- 还原一个数据后,数据库文件有10M,可是日志LOG文件却有800M,怎么让LOG文件变小啊
- 在SQL SERVER7/2000中,能否定义自己的全局变量,用来存放中间结果,盼高手赐教
- Sql server实时数据采集的难题???急!!!
- 在查询分析器中执行查询,点击取消按钮是取消查询还是停止查询?
set @s = 'select mtlid '
select @s = @s +',[month'+cast([month] as varchar(2))+']= case month when '+[month]+' then amount else 0 end'
from [table] group by [month]
set @s=@s+' from [table] group by mtlid '
exec(@s)