Office中国论坛/Access中国论坛
标题:
[求助]一个表筛选并删除筛选记录的问题
[打印本页]
作者:
asaasa
时间:
2007-7-30 05:16
标题:
[求助]一个表筛选并删除筛选记录的问题
<
>请教大家一个表筛选并删除筛选记录的问题.</P>
<
>表1有两个字段 <br><br>字段A 字段B<br><FONT color=#ff0000>aaaa 1234</FONT><br>bbbb 2345<br>cccc 9456<br><FONT color=#ff0000>aaaa 5678 </FONT><FONT color=#000000>(备注:5678是字段A里的重复数据aaaa里的最大值,不要筛选)<br></FONT><FONT color=#ff0000>aaaa 3455</FONT></P>
<
><FONT color=#000000>筛选后 查询表2显示结果</FONT></P>
<P>查询表2 <br>字段C 字段D<br><FONT color=#1111ee>aaaa 1234<br>aaaa 3455<br><br></FONT><FONT color=#000000>(上面蓝色部分是筛选出来的结果.如何将 aaaa 5678这条记录在查询表2里不被筛选出来.<br>目的:最后删除查询表2里的所有数据,等于是删除了表1里的aaaa 1234和aaaa 3455)</FONT></P>
<P><FONT color=#ff0000>问题一句话概述:</FONT>怎样保留表1字段A里重复数据里值最大的一条记录,其它重复数据里值小的记录删除掉.<br><br>请各位高手指教!![attach]25552[/attach]<br></P>
[此贴子已经被作者于2007-7-29 23:01:10编辑过]
作者:
jicheng
时间:
2007-7-30 16:14
建一个查询,取字段B最大值,就是你要的结果,可以再生成一个表
作者:
asaasa
时间:
2007-7-30 19:05
<DIV class=quote><B>以下是引用<I>jicheng</I>在2007-7-30 8:14:00的发言:</B><BR>建一个查询,取字段B最大值,就是你要的结果,可以再生成一个表</DIV>
<
>你可能误解意思了 如果取字段B里的最大值,查询出来的结果只显示了字段B里最大值的记录<FONT color=#1111ee>aaaa 5678 </FONT>,没有显示其他两个值小的记录,我的意思是查询出来的结果是显示<FONT color=#1111ee>aaaa 1234 和aaaa 3455 </FONT><FONT color=#000000>这两条值小的记录,而</FONT><FONT color=#1111ee>aaaa 5678 <FONT color=#000000>这条值最大的条记录不显示出来。</FONT></FONT><BR></P>
作者:
jicheng
时间:
2007-7-30 19:19
那再建一个不匹配查询就是你要的数据(即两个表相减)
作者:
wwwwa
时间:
2007-7-30 20:52
select a.* from 表1 a inner join (<br>SELECT 字段A, max(字段B) as ma<br>FROM 表1 group by 字段A<br>having count(*)>=2) b on (a.字段A=b.字段A) and (a.字段b<b.ma)
作者:
hi-wzj
时间:
2007-7-30 21:50
DELETE 表1.*, [字段A] & "," & [字段B] AS 表达式1<BR>FROM 表1<BR>WHERE ((([字段A] & "," & [字段B]) Not In (SELECT [字段A] & "," & Max([字段B]) AS 表达式1 FROM 表1 GROUP BY 表1.字段A;)));<BR>
作者:
asaasa
时间:
2007-7-31 20:48
非常感谢 各位高手的指点!!!
作者:
asaasa
时间:
2007-7-31 20:56
采用了hi-wzj 版主的方法,wwwwa 金牌会员的方法也可以查出来,不过不能在查询表里直接删除掉,不过也非常感谢你的帮忙。
作者:
poly
时间:
2007-8-1 00:46
SQL看不懂~
作者:
goto2008
时间:
2007-8-1 08:39
学习下。。。。。。。。。。。。
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3