第一次发布海报并热心访问新手。
我有一个基于Allen Browne在vba(http://allenbrowne.com/ser-62.html)精彩搜索的搜索屏幕。这对我的大部分目的都有用,但现在子表正在复制记录。
我们的客户(提供商)可以注册多个计划。我们有四个人。我想要一个搜索,让我按提供者类型过滤,但是当提供者注册多个提供者类型时,不会创建重复记录。在示例图像中,carmen titus在LEHRC和fccn程序中,因此出现两次。试图发布图片,但没有骰子。
请帮忙!我努力搜索,无法找到解决方案。我很感激支持或指向相关的帖子。我希望这是有道理的。我认为,作为一名训练有素的新手,我的一半战斗并不了解术语。
答案 0 :(得分:0)
我们需要更多信息!
听起来您基于搜索的查询包含两个表中具有一对多关系的列,即客户端和"客户端程序",使得单个客户端具有0到4个程序。
听起来你只想返回一个提供者列表(即一边的行),但你的SQL正在从两个表中返回数据。
这是SQL可能需要看起来像你需要的东西:
SELECT *
FROM clients AS mainClient
WHERE
EXISTS
(SELECT 1
FROM clients AS C
LEFT JOIN ClientPrograms AS CP
ON C.ID = CP.ClientID
WHERE mainClient.ID = C.ID
' the above line links the EXISTS "Sub query" to the main query
AND client name like "*j*" ... etc...
... ie lots of criteria generated by you popup search criteria dialogue)
)
通过添加EXISTS语句,主查询将是可编辑的。
如果您使用了以下SQL,则无法对其进行编辑
SELECT c.name, c.dob, etc.. ie all the field you want on the form whichwill all be from the client table
FROM clients AS C
LEFT JOIN ClientPrograms AS CP
ON C.ID = CP.ClientID
WHERE mainClient.ID = C.ID
' the above line links the EXISTS "Sub query" to the main query
AND client name like "*j*" ... etc...
... ie lots of criteria generated by you popup search criteria dialogue)
GROUP BY all the field in the select statement
我希望这会给你一些灵感