一个你们觉得不难的查询,急用,请帮忙!
有一个表[犯人],表中有字段“监狱编码”,“添加时间”,“在押男人数”,“在押女人数”
其中“监狱编码”,“添加时间”共同构成主建
每天各个监狱都会向这个表中添加新的数据,并不覆盖任何数据。
现在我想显示一个表,四个字段均显示在表中,表中每个监狱只有一条记录,并且这条记录是最新添加进去的。
看了半天书还是不会,上来求救各位!
[解决办法]
Select * from 表 as twhere 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 twhere 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 监狱编码,在押男人数,在押女人数
我得完全正确,可以给我分了.