Office中国论坛/Access中国论坛

标题: 查询中总出现重复记录,怎么办? [打印本页]

作者: dingxi72    时间: 2020-7-21 14:09
标题: 查询中总出现重复记录,怎么办?
本帖最后由 dingxi72 于 2020-7-21 14:25 编辑

请教各位大神,我想建立一个显示经销商、客户与销售代表对应关系的查询,

我先建立了一个《经销商授权客户列表》


再建立一个《销售代表与客户对应关系表》

能看到,同一客户“北京水利集团”对应不同产品线“JR”和“Endo”的不同代表,但是目前只有“JR”产品线与客户“北京水利集团”有合作。

用两个表建立查询,显示出重复的结果,而且对应的销售代表也是错的


下图是设计视图


请教各位大神,问题出在哪里?谢谢啦!!

作者: gaofei186    时间: 2020-7-21 17:14
查询中的语句用select distinct 名称 from 表
作者: gaofei186    时间: 2020-7-21 17:17
把你的查询语句从设计视图变为SQL视图,写入以上SQL语句,应该没有重复了
作者: roych    时间: 2020-7-22 09:26
gaofei186 发表于 2020-7-21 17:14
查询中的语句用select distinct 名称 from 表

这不是distinct的问题。明显是表关系没建立好。产品线应该从客户表里独立出来,通过产品线负责人ID与客户表建立关系,而授权客户列表也应该通过产品线负责人ID与产品线表建立关系。具体表设计大概如下:--产品线表

产品线ID  产品线名称   所属客户ID…………
1             A产品线          1
2            B产品线          1

--客户表


客户ID  客户姓名 …………
1         广州某公司
2        北京某公司

--授权客户表
授权ID   经销商名称  产品线ID…………
1           张三            1
2          李四             1

这样,通过产品线ID,就能完全对应起来了。

以前讲解过一个示例(不过讲得比较啰嗦,将就着看吧),供参考。
http://www.office-cn.net/thread-122846-1-1.html

作者: gaofei186    时间: 2020-7-22 10:00
谢谢
作者: dingxi72    时间: 2020-7-22 12:13
roych 发表于 2020-7-22 09:26
这不是distinct的问题。明显是表关系没建立好。产品线应该从客户表里独立出来,通过产品线负责人ID与客户 ...

我试试,非常感谢!!!

作者: roych    时间: 2020-7-22 14:57
多看看表设计规范。在实际应用中多回想一下这些理论知识。
http://www.office-cn.net/thread-118819-1-1.html
你这个表设计是不符合第三范式的。
主子表应该拆分。产品线信息不应依赖于客户信息,应该分解为两个关系,客户信息、产品线信息,然后通过外键关联起来。
这个也可以参考百度百科的例子。
作者: dingxi72    时间: 2020-7-22 15:22
嗯,我也感觉是表的设计问题,但对于范式的理解还不到位,总是找不出问题。
非常感谢您的指点。
努力学习!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3