if object_id('pubs..test') is not null drop table test go create table test ( 工作内容 varchar(30), 计下单开始时间 datetime, 绣花下单开始时间 datetime ) insert into test(工作内容,计下单开始时间,绣花下单开始时间) values('2007年鸟语花香样板设计','2006-10-28 11:23:09',null) insert into test(工作内容,计下单开始时间,绣花下单开始时间) values('2007年鸟语花香样板设计',null,'2006-10-31 00:00:00')select 工作内容,max(计下单开始时间) as 计下单开始时间 , max(绣花下单开始时间) as 绣花下单开始时间 from test group by 工作内容drop table test--结果 工作内容 计下单开始时间 绣花下单开始时间 ---------------------- ----------------------- ----------------------- 2007年鸟语花香样板设计 2006-10-28 11:23:09.000 2006-10-31 00:00:00.000(所影响的行数为 1 行)
select 工作内容,sum(isnull(计下单开始时间,0)),sum(isnull(绣花下单开始时间,0)) from tb group by 工作内容
create table tb(content nvarchar(50), [order] nvarchar(10), bgTime datetime) insert tb select '2007年鸟语花香样板设计', '计下单', '2006-10-28 11:23:09' union all select '2007年鸟语花香样板设计', '绣花下单', '2006-10-31 00:00:00' union all select '2007年鸟语花香样板设计', '開始', '2006-11-07 10:00:00' declare @sql nvarchar(4000) set @sql=' select content, ' select @sql=@sql + quotename([order]) + '=''' + cast(bgTime as varchar) +''',' from tb set @sql=left(@sql, len(@sql)-1) set @sql=@sql+' from tb group by content' exec(@sql)drop table tb
if object_id('pubs..test') is not null drop table test go create table test ( 工作内容 varchar(30), 工序 varchar(30), 开始时间 datetime ) insert into test(工作内容,工序,开始时间) values('2007年鸟语花香样板设计','计下单' ,'2006-10-28 11:23:09') insert into test(工作内容,工序,开始时间) values('2007年鸟语花香样板设计','绣花下单','2006-10-31 00:00:00') insert into test(工作内容,工序,开始时间) values('2007年鸟语花香样板设计','样衣下单','2006-11-02 00:00:00')declare @sql varchar(8000) set @sql = '' --select @sql = @sql + ',[' + 工序 + '] = max(case 工序 when ''' + 工序 + ''' then 开始时间 else null end)' select @sql = @sql + ', max(case when 工序 = ''' + 工序 + ''' then 开始时间 else null end) as ' + 工序 + '开始时间' from test group by 工序 order by 工序 desc set @sql = 'select 工作内容' + @sql + ' from test group by 工作内容' EXEC(@sql)drop table test--结果 工作内容 样衣下单开始时间 绣花下单开始时间 计下单开始时间 ---------------------- ----------------------- ----------------------- ----------------------- 2007年鸟语花香样板设计 2006-11-02 00:00:00.000 2006-10-31 00:00:00.000 2006-10-28 11:23:09.000
drop table test
go create table test
(
工作内容 varchar(30),
计下单开始时间 datetime,
绣花下单开始时间 datetime
)
insert into test(工作内容,计下单开始时间,绣花下单开始时间) values('2007年鸟语花香样板设计','2006-10-28 11:23:09',null)
insert into test(工作内容,计下单开始时间,绣花下单开始时间) values('2007年鸟语花香样板设计',null,'2006-10-31 00:00:00')select 工作内容,max(计下单开始时间) as 计下单开始时间 , max(绣花下单开始时间) as 绣花下单开始时间 from test group by 工作内容drop table test--结果
工作内容 计下单开始时间 绣花下单开始时间
---------------------- ----------------------- -----------------------
2007年鸟语花香样板设计 2006-10-28 11:23:09.000 2006-10-31 00:00:00.000(所影响的行数为 1 行)
2007年鸟语花香样板设计 计下单 2006-10-28 11:23:09
2007年鸟语花香样板设计 绣花下单 2006-10-31 00:00:00
2007年鸟语花香样板设计 样衣下单 2006-11-2 00:00:00
意思就是一项工作有多个步骤,每个步骤有个开始时间,
希望步骤在表头显示,
insert tb select '2007年鸟语花香样板设计', '计下单', '2006-10-28 11:23:09'
union all select '2007年鸟语花香样板设计', '绣花下单', '2006-10-31 00:00:00'
union all select '2007年鸟语花香样板设计', '開始', '2006-11-07 10:00:00'
declare @sql nvarchar(4000)
set @sql=' select content, '
select @sql=@sql + quotename([order]) + '=''' + cast(bgTime as varchar) +''',' from tb
set @sql=left(@sql, len(@sql)-1)
set @sql=@sql+' from tb group by content'
exec(@sql)drop table tb
drop table test
go create table test
(
工作内容 varchar(30),
工序 varchar(30),
开始时间 datetime
)
insert into test(工作内容,工序,开始时间) values('2007年鸟语花香样板设计','计下单' ,'2006-10-28 11:23:09')
insert into test(工作内容,工序,开始时间) values('2007年鸟语花香样板设计','绣花下单','2006-10-31 00:00:00')
insert into test(工作内容,工序,开始时间) values('2007年鸟语花香样板设计','样衣下单','2006-11-02 00:00:00')declare @sql varchar(8000)
set @sql = ''
--select @sql = @sql + ',[' + 工序 + '] = max(case 工序 when ''' + 工序 + ''' then 开始时间 else null end)'
select @sql = @sql + ', max(case when 工序 = ''' + 工序 + ''' then 开始时间 else null end) as ' + 工序 + '开始时间'
from test group by 工序 order by 工序 desc
set @sql = 'select 工作内容' + @sql + ' from test group by 工作内容'
EXEC(@sql)drop table test--结果
工作内容 样衣下单开始时间 绣花下单开始时间 计下单开始时间
---------------------- ----------------------- ----------------------- -----------------------
2007年鸟语花香样板设计 2006-11-02 00:00:00.000 2006-10-31 00:00:00.000 2006-10-28 11:23:09.000