You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL查询中隐藏重复的客户记录

解决SQL查询中客户重复显示的问题

问题分析

你的查询因为关联了tblKundeninteresse(客户兴趣表)和tblArtikel(商品表),当一个客户对同一商品组下多个商品感兴趣时,每个商品都会对应一条客户记录,导致重复显示。要让客户仅显示一次,核心是移除与商品相关的重复字段,或通过去重/分组保留唯一的客户信息。

修改方案1:使用DISTINCT去重

DISTINCT会自动剔除完全重复的记录,适合只保留唯一客户信息的场景。需要删掉查询中每个商品独有的字段(比如tblKundeninteresse.Artikel、tblArtikel.Bemerkung)——这些字段是导致重复的核心原因:

SELECT DISTINCT
        tblAdressen.Anrede, 
        tblAdressen.Nachname, 
        tblAdressen.Vorname, 
        tblAdressen.Adresse, 
        tblAdressen.PLZ, 
        tblAdressen.Ort, 
        tblAdressen.Tel, 
        tblAdressen.Fax, 
        tblAdressen.Mailadresse, 
        tblKundeninteresse.Warengruppe, 
        tblAdressen.Mailsenden, 
        tblAdressen.ID 
FROM    tblArtikel INNER JOIN (tblAdressen INNER JOIN tblKundeninteresse ON tblAdressen.ID = tblKundeninteresse.Kunde) ON tblArtikel.ID = tblKundeninteresse.Artikel 
WHERE   (((tblKundeninteresse.Warengruppe) Like [Formulare]![frmAbfrageWarengruppen]![cboWarengruppeAbfrage]) AND 
        ((tblAdressen.Aktiv)=True) AND ((tblKundeninteresse.aktiv)=True)) 
ORDER BY tblAdressen.ID;

修改方案2:使用GROUP BY分组

通过按客户唯一标识tblAdressen.ID分组,确保每个客户只显示一次。同样需要移除商品相关的非聚合字段,或者对这些字段使用聚合函数(比如MAX()),如果不需要具体商品信息,直接保留客户和商品组字段即可:

SELECT
        tblAdressen.Anrede, 
        tblAdressen.Nachname, 
        tblAdressen.Vorname, 
        tblAdressen.Adresse, 
        tblAdressen.PLZ, 
        tblAdressen.Ort, 
        tblAdressen.Tel, 
        tblAdressen.Fax, 
        tblAdressen.Mailadresse, 
        tblKundeninteresse.Warengruppe, 
        tblAdressen.Mailsenden, 
        tblAdressen.ID 
FROM    tblArtikel INNER JOIN (tblAdressen INNER JOIN tblKundeninteresse ON tblAdressen.ID = tblKundeninteresse.Kunde) ON tblArtikel.ID = tblKundeninteresse.Artikel 
WHERE   (((tblKundeninteresse.Warengruppe) Like [Formulare]![frmAbfrageWarengruppen]![cboWarengruppeAbfrage]) AND 
        ((tblAdressen.Aktiv)=True) AND ((tblKundeninteresse.aktiv)=True)) 
GROUP BY tblAdressen.ID, tblAdressen.Anrede, tblAdressen.Nachname, tblAdressen.Vorname, 
         tblAdressen.Adresse, tblAdressen.PLZ, tblAdressen.Ort, tblAdressen.Tel, 
         tblAdressen.Fax, tblAdressen.Mailadresse, tblKundeninteresse.Warengruppe, 
         tblAdressen.Mailsenden
ORDER BY tblAdressen.ID;

关键提示

  • 必须移除tblKundeninteresse.Artikel和tblArtikel.Bemerkung这类每个商品独有的字段,否则即使使用DISTINCT或GROUP BY,每个商品仍会生成独立记录。
  • 如果需要同时显示客户感兴趣的所有商品,可以用聚合函数(比如Access中的STRING_AGG或自定义合并函数)把商品信息合并到一条记录中,但这会增加查询复杂度。

内容的提问来源于stack exchange,提问作者Talibasch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 23:10:00