日期:2014-05-18 浏览次数:20590 次
Select * from 表 as t where not exists(Select * from 表 Where 监狱编码=t.监狱编码 and 添加时间>t.添加时间)
------解决方案--------------------
select a.* from tb a,
(select 监狱编码 , max(添加时间) 添加时间 from tb group by 监狱编码) b
where a.监狱编码 = b.监狱编码 and a.添加时间 = b.添加时间
------解决方案--------------------
多种方法。 还可以按监狱编码分组,求添加时间最大值,然后再与原表关联。 select a.* from tb as a inner join (select 监狱编码,max(添加时间) 添加时间 from tb group by 监狱编码) as b on a.监狱编码 = a.监狱编码 and a.添加时间=b.添加时间
------解决方案--------------------
Select * from 表 as t where t.添加时间 = (Select max(添加时间) from 表 group by 监狱编码)
------解决方案--------------------
Select * from Table T1 INNER JOIN (Select 监狱编码, MAX(添加时间) 添加时间 FROM Table group by 监狱编码) T2 On T1.监狱编码 = T2.监狱编码 and T1.添加时间 = T2.添加时间
------解决方案--------------------
declare @犯人 table(监狱编码 int,在押男人数 int ,在押女人数 int,添加时间 datetime)
insert into @犯人 select 4321,21,23,'2007-10-11'
insert into @犯人 select 4322,22,24,'2007-10-11'
insert into @犯人 select 4323,21,23,'2007-10-11'
insert into @犯人 select 4321,21,23,'2007-10-10'
insert into @犯人 select 4322,22,24,'2007-10-10'
insert into @犯人 select 4323,21,23,'2007-10-10'
insert into @犯人 select 4321,20,21,'2007-10-09'
insert into @犯人 select 4322,21,21,'2007-10-09'
insert into @犯人 select 4323,20,21,'2007-10-09'
select 监狱编码,在押男人数,在押女人数,max(添加时间)
from @犯人
where cast(监狱编码 as varchar(10))+cast(在押男人数 as varchar(10))+cast(在押女人数 as varchar(10)) in
(select max(cast(监狱编码 as varchar(10))+cast(在押男人数 as varchar(10))+cast(在押女人数 as varchar(10)))
from @犯人
group by 监狱编码)
group by 监狱编码,在押男人数,在押女人数
我得完全正确,可以给我分了.