MS Access数据过滤需求:SQL视图与设计视图下的条件筛选
Access数据过滤:按公司规则保留指定ERP记录
嘿,我来帮你搞定这个Access里的数据过滤需求!不管是用SQL视图手动写代码,还是用设计视图可视化操作,都能完美实现你的要求,下面我给你详细说明:
一、SQL视图实现方案
直接在SQL视图里写这条语句就行,逻辑清晰又高效:
SELECT * FROM 你的表名 WHERE (公司 <> "Company 2") OR (公司 = "Company 2" AND ERP参考编号 IN ("INV", "EXP"));
逻辑解释:
- 第一部分
(公司 <> "Company 2"):匹配所有非Company 2的公司,直接保留全部数据行 - 第二部分
(公司 = "Company 2" AND ERP参考编号 IN ("INV", "EXP")):专门针对Company 2,只保留ERP编号是INV或EXP的记录 - 用
OR把两部分连起来,就实现了“要么是非Company 2,要么是符合条件的Company 2”的规则
注意:把语句里的
你的表名换成你实际使用的表名称,字段名也要和你表中的字段完全一致(包括大小写,Access虽然不严格,但尽量匹配避免问题)
二、设计视图可视化操作
要是你更习惯用设计视图点点鼠标,按下面的步骤来:
- 打开Access,创建新的查询,进入设计视图
- 在显示表对话框里添加你要操作的表,然后关闭对话框
- 把你需要显示的所有字段(或者直接拖个
*来显示全部字段)拖到查询设计网格中 - 设置过滤条件:
- 在「公司」字段的条件行输入:
<> "Company 2" - 在「公司」字段的或行(条件行下方的那一行)输入:
"Company 2",同时在同一行的「ERP参考编号」字段输入:"INV" OR "EXP"
- 在「公司」字段的条件行输入:
- 点击运行按钮(感叹号图标),就能看到符合要求的过滤结果了
这样设计视图会自动生成和上面SQL语句逻辑完全一致的查询,效果是一样的。
内容的提问来源于stack exchange,提问作者Sk123




