首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL数据表按天横向归类汇总

2013-07-08 
SQL数据表按天横向分类汇总? 表名:MO_TABLE编号名称产量完成日期 A01车间A9002013-06-10 A02车间B7002013-

SQL数据表按天横向分类汇总?
 表名:MO_TABLE
编号   名称      产量        完成日期
 A01   车间A     900        2013-06-10
 A02   车间B     700        2013-06-10
 A01   车间A     600        2013-06-11
 A02   车间B     1300       2013-06-11
 A01   车间A     800        2013-06-12
 A02   车间B     600        2013-06-12
 .........
 
   
  编号    名称      2013-06-10     2013-06-11    2013-06-12  ..........
  A01     车间A       900           600             800
  A02     车间B       700           1300            600

按天横向分类汇总
[解决办法]

if object_id('[MO_TABLE]') is not null drop table [MO_TABLE]
go
create table [MO_TABLE] (编号 nvarchar(6),名称 nvarchar(6),产量 int,完成日期 datetime)
insert into [MO_TABLE]
select 'A01','车间A',900,'2013-06-10' union all
select 'A02','车间B',700,'2013-06-10' union all
select 'A01','车间A',600,'2013-06-11' union all
select 'A02','车间B',1300,'2013-06-11' union all
select 'A01','车间A',800,'2013-06-12' union all
select 'A02','车间B',600,'2013-06-12'

select * from [MO_TABLE]



declare @sql varchar(8000)
select @sql = isnull(@sql + '],[' , '') + CONVERT(VARCHAR(10),完成日期,120) from [MO_TABLE] group by CONVERT(VARCHAR(10),完成日期,120)


set @sql = '[' + @sql + ']'
exec ('select * from (select * from [MO_TABLE]) a pivot (max(产量) for 完成日期 in (' + @sql + ')) b')

/*
编号名称2013-06-102013-06-112013-06-12
A01车间A900600800
A02车间B7001300600*/

热点排行