多表查询结果出现重复记录,根据条件只取其中的一条记录的sql语句

多表查询结果出现了重复记录,在这些重复的记录中想根据(日期最晚的)条件要其中的一条记录,distinct关键字无效,请问该怎么写?

例如两个表,表1,表2

表1 表2

id 字段1 id_xx 字段a time
1 张三 1 +10 01-01
2 李四 1 +20 01-02
3 王二 1 -10 01-03
1 +10 01-04
2 -10 01-01
2 +10 01-02
2 -10 01-03
3 +10 01-01
3 +10 01-02

我想要的记录分别是

1 张三 +10 01-04
2 李四 -10 01-03
3 王二 +10 01-02

请问sql语句该怎么写?谢谢!!!
<img src="http://www.zzmymy.com/1212.gif" width="436" height="376" />

第1个回答  推荐于2017-09-27
select top 1 * form 表2 where id=(select id form 表1 order by id esc) order by time desc

top 1 选出第一条记录
order by time desc 按时间倒序排列,这样第一条记录就是日期最晚的记录了

id=(select id form 表1 order by id esc)表一中的id与表二中相等的id本回答被提问者采纳

多表查询结果出现重复记录,根据条件只取其中的一条记录的sql语句
top 1 选出第一条记录 order by time desc 按时间倒序排列,这样第一条记录就是日期最晚的记录了 id=(select id form 表1 order by id esc)表一中的id与表二中相等的id

如何去掉数据库重复记录并且只保留一条记录
方法如下: 1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from peoplewhere peopleId in (select peopleId from people group by peopleId hav 在n条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复并保留一条呢?方法如下:1、查找表中多余的重复记录,...

sql数据库 有多条记录完全重复,怎么删除重复记录,只保留一条,sql语句...
如果只是要查询不是重复的记录的话 select distinct * from 表 如果是将多余的重复记录删除 首先将不是重复的数据提取出来,保存到一个临时表中 select distinct * into #temp from 表 然后删除原来的表 delete from 表 最后往里面插入临时表的数据 insert into 表 select * from #temp ...

sql根据某一个字段重复只取第一条数据
查找表中多余的重复记录,重复记录是根据单个字段(teamId)来判断 select * from team where teamId in (select teamId from team group by teamId having count(teamId) > 1) 删除表中多余的重复记录,重复记录是根据单个字段(teamId)来判断,只留有rowid最小的记录 delete from team where te...

在sql语句里想取许多条记录,但重复的只取一次,请问怎样写。
select distinct 字段名 from 表名 distinct不管这个值出现多少次只显示一次

sql重复数据只取一条记录
1、SQL SELECT DISTINCT 语句 在表中,可能会包含重复值。这并不成问题,不过,仅仅列出不同(distinct)的值。关键词 DISTINCT 用于返回唯一不同的值。语法:SELECT DISTINCT 列名称 FROM 表名称 使用 DISTINCT 关键词 SELECT DISTINCT Company FROM Orders 2、子查询限制返回结果 SELECT * FROM Test...

sql语句查询三个表中相同字段名的条数,但对于重复的只记1次
你得说明这是那个表的关系啊!两个去重复的简单方法 SELECT C1 FROM TABLE1 UNIONSELECT C2 FROM TABLE2UNIONSELECT C3 FROM TABLE3UNION是合并上下两个结果集,重复的值显示一次 或者 SELECT DISTINCT C FROM TABLEDISTINCT是去重复的关键字,如果多行相同,只显示一行 看不懂再追问吧 ...

求sql语句,只修改重复数据中的一条记录
1、对于第一种重复,比较容易解决,使用 select distinct * from tableName 就可以得到无重复记录的结果集。如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除 select distinct * into #Tmp from tableName drop table tableName select * into tableName from #Tmp drop table #Tmp...

求SQL语句 过滤重复记录 只显示一条
一般来讲消除重复值使用DISTINCT关键字或分组汇总方法非常方便,但问题是如果输出记录中包含自动ID字段,由于原表中每一条记录的自动ID值都是唯一的,这会导致DISTINCT关键字或分组汇总方法无效,而剔除自动ID字段后虽然可以得到唯一记录,但是唯一记录失去了与自动ID的关联而无法按自动ID字段进行准确排序。前面...

sql中怎么删除两条重复记录并保留一条
将数据去重复后暂存到临时表#a中 select distinct * into #a from table1 where 条件 delete table1 where 删除限制条件 insert into table1 select * from #a -将暂存的数据插回数据库 drop table #a -删除临时表 注:当前的数据库,每一个表都应该有一个标志字段,以保证记录不完全重复,...

相似回答