Ms Access SQL:如何防止 Select 查询重复

     2023-03-29     167

关键词:

【中文标题】Ms Access SQL:如何防止 Select 查询重复【英文标题】:MsAccess SQL: how to prevent duplicates from Select query 【发布时间】:2019-01-08 23:51:44 【问题描述】:

我有一个 Select 查询(许多字段和一些计算字段),它使用非平凡的 Where 子句和 Order By 子句连接许多表。根据用户过滤器,它可以根据连接表之一的 ID 返回重复记录。我想消除所有具有重复 table1.ID 值的结果行。

例子:

Select a.fld1, b.fld2, c.fld3, d.fld4 from (((tablea join tableb on a.x=b.x)
 join tablec on c.x=a.x) join tabled on d.x=a.x where blah-blah.

这将返回:

a.fld1, b.fld2, c.fld3, d.fld4
1, 2, 3, 4
1, 21, 3, 4
2, 2, 3, 4
2, 22, 3, 4

我想消除具有重复 a.fld1 值的额外行。 b.fld2 会有所不同,我不在乎哪些记录会被遗漏。但我确实需要 b.fld2 中的至少一个值用于其他查找目的。

我似乎想不出一个好的方法来做到这一点。

谢谢, 杰夫

【问题讨论】:

如果不知道您的查询和架构,但您知道 SELECT DISTINCT 吗? 是的 - 谢谢。我知道 DISTINCT。当我从许多表中选择许多字段时,也许我不明白如何使其工作,有些是计算的,有些是'table.*'。我的模式没有什么独特之处;只是表格和字段。 你看到有些返回的字段不一样,我也不在乎,我只需要根据一个表中的一个字段排除重复项即可。 如果您要返回您不关心但不是唯一的列,那么您需要指定您想要的多个值中的哪一个,或者留下列并按照建议使用 Distinct。 SQL 不知道认为哪些列很重要,它对完整的结果集感兴趣。 这个问题真的需要minimal reproducible example。是的,创建一个是可行的,但如果没有它,我看不出我们如何为您提供帮助。 【参考方案1】:

(也许我通常喜欢将这个提议的解决方案写成评论,但此时我仍然需要更高的声誉才能编写 cmets。)

仅查看您的输出,您似乎可以只使用您拥有的 SQL 并将其全部用作新 SQL 语句中的子查询,该语句按第一个字段分组(并且还获得第一个值或最低值或只要您认为适合其他字段的任何内容,只要结果行中不同字段中的数据可能来自不同记录即可)...

【讨论】:

SELECT Count Distinct Syntax MS Access SQL [重复]

】SELECTCountDistinctSyntaxMSAccessSQL[重复]【英文标题】:SELECTCountDistinctSyntaxMSAccessSQL[duplicate]【发布时间】:2021-05-2712:07:13【问题描述】:表:测试CustomerNumber56788SELECTCOUNT(DISTINCT[CustomerNumber])FROMTest预期结果=4【问题讨论】:【参考方... 查看详情

MS Access VBA 中的 SQL 指令

】MSAccessVBA中的SQL指令【英文标题】:SQLinstructioninMSAccessVBA【发布时间】:2019-02-1907:20:06【问题描述】:Chr(34)的想法给出了MsgBox1SELECT*FROMEmpWHEREJobNumber=BFLAMsgBox2"SELECT*FROMEmpWHEREJobNumber=BFLA"它看起来好像应该在OpenRecordset中工作,但... 查看详情

MS-Access SELECT TOP N 子查询 SQL

】MS-AccessSELECTTOPN子查询SQL【英文标题】:MS-AccessSELECTTOPNsubquerySQL【发布时间】:2014-11-2414:43:59【问题描述】:多次尝试此查询,感觉我只是缺少一些简单的东西。这个例子:aggregationsubquerywithtopN接近我想要完成的目标,但是我... 查看详情

MS Access 使用 SQL INSERT INTO - SELECT FROM 插入记录

】MSAccess使用SQLINSERTINTO-SELECTFROM插入记录【英文标题】:MSAccessinsertingrecordsusingSQLINSERTINTO-SELECTFROM【发布时间】:2020-12-2118:07:51【问题描述】:我不熟悉使用RDB并尝试使用VB.NET中的SQL(使用System.Data.oledb命名空间)将数据插入表中... 查看详情

基于最近日期的 MS Access 中的 SQL SELECT 查询

】基于最近日期的MSAccess中的SQLSELECT查询【英文标题】:SQLSELECTQueryinMSAccessbasedonmostrecentdate【发布时间】:2018-09-0721:29:30【问题描述】:我试图在PriceFeed表中找到高于/等于最近日期/时间MSAccess表单中输入价格的投标价格。我想从... 查看详情

如何防止 MS Access 连接模式和表名,从而使它们超过 64 个字符的限制?

】如何防止MSAccess连接模式和表名,从而使它们超过64个字符的限制?【英文标题】:HowdoesonepreventMSAccessfromconcatenatingtheschemaandtablenamestherebytakingthemoverthe64characterlimit?【发布时间】:2016-08-1714:23:28【问题描述】:我已经尝试解决... 查看详情

如何让 ms-access 以其他用户身份连接到 ms-sql?

】如何让ms-access以其他用户身份连接到ms-sql?【英文标题】:HowdoIgetms-accesstoconnecttoms-sqlasadifferentuser?【发布时间】:2008-09-0821:51:02【问题描述】:如何让ms-access以不同于其ActiveDirectoryID的用户身份连接到ms-sql数据库(通过ODBC)... 查看详情

MS Access 中的多行插入语句

】MSAccess中的多行插入语句【英文标题】:MultirowinsertintostatementinMSAccess【发布时间】:2010-08-1816:46:11【问题描述】:我是一名SQL新手,正在尝试弄清楚如何在一个SQL语句中插入多个表条目。这是我的代码:INSERTINTO[Students](P_Id,Firs... 查看详情

如何强制 MS Access 保留其 SQL 格式?

】如何强制MSAccess保留其SQL格式?【英文标题】:HowdoIforceMSAccesstoretainitsSQLformatting?【发布时间】:2012-08-1307:49:05【问题描述】:我在MS-Access中有很多SQL在工作,我需要对其进行格式化以便人类可读。问题是当我在视图之间切换... 查看详情

Ms access Select 带有限制选项的查询

】MsaccessSelect带有限制选项的查询【英文标题】:MsaccessSelectquerywithlimitoptions【发布时间】:2012-05-1006:45:11【问题描述】:我有一个类似的查询:selectid,namefromtable_namewhereidisnotnulllimit10,20formysql;如何在ms访问中从表中获取10到20条记... 查看详情

如何防止最终用户在 MS Access 2010 应用程序中从前端查看后端数据?

】如何防止最终用户在MSAccess2010应用程序中从前端查看后端数据?【英文标题】:Howtopreventtheend-userfromviewingback-enddatafromfront-endinanMSAccess2010application?【发布时间】:2012-02-1709:37:50【问题描述】:我有一个Access应用程序,它分为存... 查看详情

MS-Access:SQL JOIN 和 INSERT INTO 与 WHERE 慢

】MS-Access:SQLJOIN和INSERTINTO与WHERE慢【英文标题】:MS-Access:SQLJOINandINSERTINTOwithWHEREslow【发布时间】:2017-05-0808:14:13【问题描述】:长话短说:通过INSERTINTO将具有两个表的INNERJOIN的SELECT查询插入到新表中。虽然此查询在20秒内完成... 查看详情

MS Access - 在 VBA 中编写 SQL

】MSAccess-在VBA中编写SQL【英文标题】:MSAccess-WritingSQLinVBA【发布时间】:2016-10-2521:52:57【问题描述】:背景开发一个MSAccess模块,在onClick()事件触发时执行SQL代码。代码DimsqlStringAsStringsqlString="SELECT[Table-Summary-AllItemForecasts,Sales,andP... 查看详情

SQL MS Access查询的排除条件

】SQLMSAccess查询的排除条件【英文标题】:ExclusionConditionforSQLMSAccessQuery【发布时间】:2016-11-2902:49:02【问题描述】:要求:生成一个查询,该查询根据电话号码输出数据,以响应用户输入StartDate、EndDate和UpperDataThreshold。这些输... 查看详情

如何在 MS Access 中向 SQL 查询添加自定义行?

】如何在MSAccess中向SQL查询添加自定义行?【英文标题】:HowtoaddcustomrowstoanSQLqueryinMSAccess?【发布时间】:2015-06-2314:08:41【问题描述】:我尝试使用UNION但我曾经收到此消息:查询输入必须至少包含一个表或查询我尝试的查询是:... 查看详情

如何在 MS Access SQL 中获取总金额?

】如何在MSAccessSQL中获取总金额?【英文标题】:HowgettotalamountinMSAccessSQL?【发布时间】:2017-06-1619:18:41【问题描述】:我使用以下查询来获取OrderID:SELECTOrderItem.ID,ProductID,OrderID,Quantity,P.Title,P.CurrentPrice,P.ID,(P.CurrentPrice*OrderItem.Quan... 查看详情

如何在 MS Access 2007 或 MS SQL Server 2005 中通过 SQL 将字段转换为行

】如何在MSAccess2007或MSSQLServer2005中通过SQL将字段转换为行【英文标题】:HowtoconvertfieldsintorowsthroughSQLinMSAccess2007orMSSQLServer2005【发布时间】:2008-12-0216:24:02【问题描述】:我有一个旧版MSAccess2007表,其中包含52个字段(一年中的每... 查看详情

MS Access SQL 中的通配符

】MSAccessSQL中的通配符【英文标题】:WildcardsinMSAccessSQL【发布时间】:2010-08-2311:16:04【问题描述】:我在MSAccess中编写了这个SQL查询:SELECT*FROMStudentsWHEREnamelike\'_a*\'即使学生表中有danny和sara之类的名字,也不会产生任何结果。\'_\... 查看详情