ms-access – 我想了解Microsoft Access向导生成的查询
假设我有一个名为tbl_med的表,它有六个字段:[nom_lab],[nom_desc],[nom_apres],[date_vig],[cod_med],[vr_pmc].
我想要一个MS Access SQL查询,它将: >查找与四个字段相关的重复记录:[nom_lab],[date_vig]. 我使用MS Access“查找重复查询向导”,它给了我以下SQL: SELECT tbl_med.[nom_lab],tbl_med.[nom_desc],tbl_med.[nom_apres],tbl_med.[date_vig],tbl_med.[cod_med],tbl_med.[vr_pmc] FROM tbl_med WHERE tbl_med.[nom_lab] IN ( SELECT [nom_lab] FROM [tbl_med] As Tmp GROUP BY [nom_lab],[date_vig] HAVING Count(*)>1 And [nom_desc] = [tbl_med].[nom_desc] And [nom_apres] = [tbl_med].[nom_apres] And [date_vig] = [tbl_med].[date_vig] ) ORDER BY tbl_med.[nom_lab],tbl_med.[date_vig]; 谁能解释为什么上面的水平规则线之间的三个条件是必要的? 有没有人有更直观的查询,这将更容易理解? 解决方法
本质上,三个And子句在那里,因为你告诉查询向导你不仅要检查[nom_lab]字段上的重复项,还要检查[nom_desc],[nom_apres]和[date_vig]字段(就像你一样)在你问题的开头说明).
SELECT [nom_lab] FROM [tbl_med] As Tmp … HAVING Count(*)>子查询的1部分告诉它查找具有重复[nom_lab]值的记录.然后,And子句通过实际说明“除了具有重复的[nom_lab]值之外,还要满足剩余的所请求的重复标准,我想只看到在所有这三个其他字段中也有重复的记录([nom_desc],[ nom_apres]和[date_vig]).“ 所以要回答你的第二个问题,我真的看不出你怎么能强迫它更直观. SQL只是一种棘手的语言,有时会让你头脑发热,就像任何语言(无论是编程语言还是口语)一样,在您轻松阅读之前,需要花时间学习它的模式和细微差别. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 用于支持Windows Vista / 7中的回声消除的API
- 是否有类似Microsoft Windows Server DFS for Linux的东西?
- windows-installer – Windows Installer总是说“正在安装另
- Windows服务恢复不重新启动服务
- windows-7 – powershell as gvim(vim):shell
- windows-phone-8 – wp8 LonglistSelector AnimateTo
- Windows和Linux之间Java套接字的差异 – 如何处理它们?
- 将我的Azure应用程序部署到我的公司本地Windows Server
- Windows-7 – 在Windows关闭时执行批处理脚本
- 如何在Windows上从命令行播放音频文件?