天天@BLOG

脖子越来越疼,脑袋越来越钝
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

交叉统计显示

Posted on 2006-07-21 13:55  天天在线  阅读(259)  评论(1编辑  收藏  举报

--预备建表
create Table #BBB
(
通知号  int,
工序号  nvarchar(10),
生产数 int
)
--填数据
insert into #BBB (通知号,工序号,生产数)values(2,'工序1' ,20)
insert into #BBB (通知号,工序号,生产数)values(2,'工序1' ,20)
insert into #BBB (通知号,工序号,生产数)values(2,'工序2' ,21)
insert into #BBB (通知号,工序号,生产数)values(2,'工序4' ,22)
insert into #BBB (通知号,工序号,生产数)values(3,'工序1' ,54)
insert into #BBB (通知号,工序号,生产数)values(3,'工序3' ,55)
insert into #BBB (通知号,工序号,生产数)values(3,'工序5' ,56)

select * from #BBB

declare @col nvarchar(500)
declare @str nvarchar(1000)

set @col=''

select @col=@col+',isnull((select sum(生产数) from #BBB where 通知号=a.通知号 and 工序号='''+工序号+'''),0) as '+工序号+'' from #BBB group by 工序号


select @str='select 通知号'+ @col+' from #BBB a group by 通知号'

exec(@str)

drop table #BBB

@忙碌,不代表有效率;方法,远胜于苦干