declare @t table(num varchar(10),name varchar(10),work_start datetime,travel_start datetime,train_num int)
insert into @t select '0002','明天','2005-12-20','2005-12-20',112
insert into @t select '0002','明天','2005-12-22','2005-12-23',111
insert into @t select '0002','明天','2005-12-26','2005-12-27',33select
num,name,
[20日]=max(case day(work_start) when 20 then rtrim(train_num) end),
[22日]=max(case day(work_start) when 22 then rtrim(train_num) end),
[26日]=max(case day(work_start) when 26 then rtrim(train_num) end)
from
@t
group by
num,name
union
select
num,name,
[20日]=max(case day(work_start) when 20 then convert(char(10),work_start,120) end),
[22日]=max(case day(work_start) when 22 then convert(char(10),work_start,120) end),
[26日]=max(case day(work_start) when 26 then convert(char(10),work_start,120) end)
from
@t
group by
num,name
union
select
num,name,
[20日]=max(case day(work_start) when 20 then convert(char(10),travel_start,120) end),
[22日]=max(case day(work_start) when 22 then convert(char(10),travel_start,120) end),
[26日]=max(case day(work_start) when 26 then convert(char(10),travel_start,120) end)
from
@t
group by
num,name/*
num name 20日 22日 26日
---------- ---------- ------------ ------------ ------------
0002 明天 112 111 33
0002 明天 2005-12-20 2005-12-22 2005-12-26
0002 明天 2005-12-20 2005-12-23 2005-12-27
*/
insert into @t select '0002','明天','2005-12-20','2005-12-20',112
insert into @t select '0002','明天','2005-12-22','2005-12-23',111
insert into @t select '0002','明天','2005-12-26','2005-12-27',33select
num,name,
[20日]=max(case day(work_start) when 20 then rtrim(train_num) end),
[22日]=max(case day(work_start) when 22 then rtrim(train_num) end),
[26日]=max(case day(work_start) when 26 then rtrim(train_num) end)
from
@t
group by
num,name
union
select
num,name,
[20日]=max(case day(work_start) when 20 then convert(char(10),work_start,120) end),
[22日]=max(case day(work_start) when 22 then convert(char(10),work_start,120) end),
[26日]=max(case day(work_start) when 26 then convert(char(10),work_start,120) end)
from
@t
group by
num,name
union
select
num,name,
[20日]=max(case day(work_start) when 20 then convert(char(10),travel_start,120) end),
[22日]=max(case day(work_start) when 22 then convert(char(10),travel_start,120) end),
[26日]=max(case day(work_start) when 26 then convert(char(10),travel_start,120) end)
from
@t
group by
num,name/*
num name 20日 22日 26日
---------- ---------- ------------ ------------ ------------
0002 明天 112 111 33
0002 明天 2005-12-20 2005-12-22 2005-12-26
0002 明天 2005-12-20 2005-12-23 2005-12-27
*/
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货