日期:2014-05-16 浏览次数:20539 次
create table test (sid nvarchar(5),sdate datetime,svol int)
insert into test
select 's1','2013-12-10',20 union all
select 's1','2013-12-12',24 union all
select 's1','2013-12-13',23 union all
select 's1','2013-12-14',23 union all
select 's2','2013-12-16',25 union all
select 's2','2013-12-17',26 union all
select 's2','2013-12-19',24 union all
select 's3','2013-12-23',18 union all
select 's3','2013-12-24',20 union all
select 's3','2013-12-25',19 union all
select 's3','2013-12-26',21 union all
select 's3','2013-12-27',20
select a.sid,
sdate=MIN(a.sdate),
svol=( select svol
from test
where sid=a.sid
and sdate =(
select MIN(sdate)
from test
where sid=a.sid
)
)
from test a
group by a.sid
union
select a.sid,
sdate=MAX(a.sdate),
svol=( select svol
from test
where sid=a.sid
and sdate =(
select MAX(sdate)
from test
where sid=a.sid
)
)
from test a
group by a.sid
/*
s1 2013-12-10 00:00:00.000 20
s1 2013-12-14 00:00:00.000 23
s2 2013-12-16 00:00:00.000 25
s2 2013-12-19 00:00:00.000 24
s3 2013-12-23 00:00:00.000 18
s3 2013-12-27 00:00:00.000 20
*/
--> 测试数据:[a]
if object_id('[a]') is not null drop table [a]
go
create table [a](sid char(2),sdate datetime,svol int)
insert [a]
select 's1', '2013-12-10', 20 union all
select 's1', '2013-12-12', 24 union all
select 's1', '2013-12-13', 23 union all
select 's1', '2013-12-14', 23 union all
select 's2', '2013-12-16', 25 union all
select 's2', '2013-12-17', 26 union all
select 's2', '2013-12-19', 24 union all
select 's3', '2013-12-23', 18 union all
select 's3', '2013-12-24', 20 union all
select 's3', '2013-12-25', 19 union all
select 's3', '2013-12-26', 21 union all
select 's3', '2013-12-27', 20
select a.* from a ,
(
select sid ,min(sdate) as sdate from a group by sid
union all
select sid ,max(sdate) as sda