首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

一个你们觉得不难的查询,用,请帮忙!解决办法

2012-01-23 
一个你们觉得不难的查询,急用,请帮忙!有一个表[犯人],表中有字段“监狱编码”,“添加时间”,“在押男人数”,“在

一个你们觉得不难的查询,急用,请帮忙!
有一个表[犯人],表中有字段“监狱编码”,“添加时间”,“在押男人数”,“在押女人数”

其中“监狱编码”,“添加时间”共同构成主建

每天各个监狱都会向这个表中添加新的数据,并不覆盖任何数据。

现在我想显示一个表,四个字段均显示在表中,表中每个监狱只有一条记录,并且这条记录是最新添加进去的。

看了半天书还是不会,上来求救各位!

[解决办法]

SQL code
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.添加时间
[解决办法]
SQL code
多种方法。还可以按监狱编码分组,求添加时间最大值,然后再与原表关联。select a.* from tb as a    inner join (select 监狱编码,max(添加时间) 添加时间 from tb group by 监狱编码) as b on a.监狱编码 = a.监狱编码 and a.添加时间=b.添加时间
[解决办法]
SQL code
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 监狱编码,在押男人数,在押女人数


我得完全正确,可以给我分了.

热点排行