access数据库 两个表 关联 去重复的查询

a表 id userid yuejifen zongjifen
b表 id username
a表 userid=b表id
查b表username 及a表id userid 最大yuejifen zongjifen

问题描述不够清楚,
我写的是查询每个用户的max(yuejifen),并列出对应a表中的编号、b表中的username,问题分解如下:
1、先查a表userid,max(yuejifen)
select userid,max(yuejifen) as maxyue from a group by userid;
2、查询a、b联合下的符合上1中查询结果的记录
select b.username,max(a.id),a.userid,a.yuejifen
from a,b,(select userid,max(yuejifen) as maxyue from a group by userid) as c
where a.userid = b.id
and a.userid = c.userid and a.yuejifen = c.maxyue
group by b.username,a.userid,a.yuejifen

因为可能有两个月相同最大积分,所以选取a中id较大的一个编号记录

上面写了yuejifen ,zongjifen类似情况

3、如果想列一个比较全面的max(yuejifen),max(zongjifen)表,就需要将查询进行进一步的关联查询
最好不要见a.id列出,最大yuejifen对应的a.id 与最大zongjifen 对应的a.id不都是同一个值。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-10-18
select distinct b.username
from b

select a.id,a.userid ,max(yuejifen),max(zongjifen),(select distinct b.username from b where b.id=a.di) as username
from a表 as a,b表 as b
group by a.id,a.userid追问

查不出来,

追答

你自己稍作修改

access数据库 两个表 关联 去重复的查询
1、先查a表userid,max(yuejifen)select userid,max(yuejifen) as maxyue from a group by userid;2、查询a、b联合下的符合上1中查询结果的记录 select b.username,max(a.id),a.userid,a.yuejifen from a,b,(select userid,max(yuejifen) as maxyue from a group by userid) as c ...

ACCESS问题,关于如何将数据库中两个具备相同列名的表格合并起来并且去 ...
对两张表运行联合(UNION)运算就行了。联合查询时不使用“ALL” 关键字就可以将重复的行删除掉。联合查询SQL代码如下:SELECT PRD,[2month] FROM Table1 UNION SELECT PRD,[2month] FROM Table2 ;如果需要将两张表合并,删除重复行后存入一张新表内(假设新表名为NewTable),则可以将下列SQL生成...

ACCESS数据库内如何去除某字段重复记录
drop table tableName select * into tableName from #Tmp drop table #Tmp 发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下 假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集 复制代码代码如下:select...

access 多表数据匹配时碰到匹配条件完全一样的两行怎么办
回答:表一出货表中, 一次出货操作只应该有一条记录, 这在任何仓储管理软件中都是唯一的. 如果一次出货出现了记录重复, 你不应该在报表输出时怎么弥补, 而应该考虑解决为什么一次出货会有记录重复: 是在数据写入时有流程错误, 还是写入代码有问题

Access中如何同时删除两个表中ID相同的记录
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录...

Access中如何同时删除两个表中ID相同的记录
)b on a.id=b.id where b.id is null 查询及删除重复记录的SQL语句 1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 2、删除表中多余的重复记录...

Access 2003 如何去重数据
1、首先打开火车头本地数据文件SpiderResult.mdb,依次点击菜单“创建”——“查询设计”打开查询设计窗口。2、打开查询设计窗口会提示添加表,这里不添加所以点击“关闭”,然后在设计窗口空白处点击右键,选择“SQL试图(Q)”。3、复制下面的代码,点击工具栏中的“运行”按钮。access数据库去重复代码:DE...

access 查找重复项
DATABASE=E:\\aa.xls',sheet1$) where a='4728'---2007Excel select * table_name from OPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;HDR=yes;DATABASE=E:\\aa.xlsx',sheet1$) where a='123'但要启用外围应用配置器。如果不会最好就是用数据库里“导入\/导出”直接进行导入吧。

、access中,如何做两个表间的,以字段记录作为条件的统计、汇总工作?
以表1为主表,表2为子表,表1字段“单位”(索引不重复)关联表2“单位名称”(索引重复)联合查询加统计项目名称记录数,

access 批量 删除 重复值的办法
你说的u1表应该是指USER1表吧 用查询或代码 方法一: 新建一个查询,右键菜单,SQL视图,贴上 以下代码 delete from user1 where u1 not in (select user from mm)方法二: 先按 alt+F11, 再按 ctr+G , 在下面的即时窗口里贴上 currentdb.execute "delete from user1 where u1 not in (...

相似回答
大家正在搜