首页 新闻 会员 周边 捐助

查询,过滤掉多余的重复记录(两个,或多个字段)

0
悬赏园豆:10 [已解决问题] 解决于 2014-06-17 16:31

表结构是这样的:

  PersonID(不重复自动生成的) ,Name ,  Sex   , Born

根据 Name  跟Sex 判断 不重复

康大头的主页 康大头 | 初学一级 | 园豆:25
提问于:2014-06-17 09:43
< >
分享
最佳答案
0

select * from table right join (select name, sex from table group by name,sex) t on table.name = t.name and table.sex = t.sex 

手打,可能有错,你试试

收获园豆:10
刘宏玺 | 专家六级 |园豆:14020 | 2014-06-17 12:27

没有达到去掉重复的效果

康大头 | 园豆:25 (初学一级) | 2014-06-17 12:53

@漫天de光: select distinct * from table right join (select name, sex from table group by name,sex) t on table.name = t.name and table.sex = t.sex

刘宏玺 | 园豆:14020 (专家六级) | 2014-06-17 12:55

@刘宏玺: 不行,这样的话,跟直接加distinct没区的

我要的是去掉 name  sex 重复的

康大头 | 园豆:25 (初学一级) | 2014-06-17 13:33

@漫天de光: 你把数据和结果发上来,我自己试试,光说没有用,下次提问题的时候你也把数据都附上

刘宏玺 | 园豆:14020 (专家六级) | 2014-06-17 15:53

@刘宏玺: 

康大头 | 园豆:25 (初学一级) | 2014-06-17 16:12

@漫天de光: select PersonID,t.name,t.sex,born from [table] right join (select MAX(PersonID) as id, name, sex from [table] group by name,sex) t on t.id = PersonID

刘宏玺 | 园豆:14020 (专家六级) | 2014-06-17 16:24

@刘宏玺: 我想查询  Born最接近当前时间的,其他的过滤掉,真的麻烦你了

康大头 | 园豆:25 (初学一级) | 2014-06-17 16:28

@漫天de光: select PersonID,t.name,t.sex,born from [table] right join (select MAX(born) as b, name, sex from [table] group by name,sex) t on t.b = born and t.name = [table].name and t.sex = [table].sex

刘宏玺 | 园豆:14020 (专家六级) | 2014-06-17 16:30
其他回答(2)
0

group by name,sex行不行

不行就distinct

吴瑞祥 | 园豆:29449 (高人七级) | 2014-06-17 09:59

但是我需要PersonId 跟Born 也出现在查询的结果中,如果group by name,sex的话会提示PersonId 不在group by 列中

支持(0) 反对(0) 康大头 | 园豆:25 (初学一级) | 2014-06-17 10:02

@漫天de光: 肯定的.因为name跟sex不重复了.其它列就有可能含有多个值.

这时候要从这多个值里选一个出来.你的规则是怎样的?比如正续取第一个?

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2014-06-17 10:18

@吴瑞祥: Born是出生日期,我要取出生日期最接近当前日期的

支持(0) 反对(0) 康大头 | 园豆:25 (初学一级) | 2014-06-17 10:29

@漫天de光: 那你的需求就是分组取第一条,分组子查询排序条件是  绝对值(getdate()-born)

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2014-06-17 11:19

@吴瑞祥: 能给写个例子吗?谢谢了。大哥,我是新手,我给你加豆子

支持(0) 反对(0) 康大头 | 园豆:25 (初学一级) | 2014-06-17 11:41
0

子查询

ゞ蓦然灬淺笑ゞ | 园豆:228 (菜鸟二级) | 2014-06-17 10:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册