SQL WHERE EXISTS()筛选结果异常及仅编辑WHERE子句方案求助
错误原因说明
- 你写的
EXISTS子查询和外层主表没有任何关联条件,只要子查询本身能返回结果(这里确实有78条符合条件的结果),EXISTS()就会永久返回TRUE,因此外层查询会返回PR表的全部31114条记录。 - 另外子查询和外层用了相同的表名
PR没有加别名区分,存在字段引用歧义,也会导致逻辑错误。
正确WHERE条件写法
如果需要和原查询返回的78条xxx-000格式的WBS1对应记录完全一致,直接填入以下内容即可:
PR.WBS1 = Left(PR.WBS1,5) & "-000" AND EXISTS ( SELECT 1 FROM PR AS sub_pr WHERE Left(sub_pr.WBS1,5) = Left(PR.WBS1,5) GROUP BY Left(sub_pr.WBS1,5), Right(sub_pr.WBS1,3), sub_pr.Status HAVING Right(sub_pr.WBS1,3) <> '000' AND sub_pr.Status = 'A' AND Count(sub_pr.Org) > 1 )
内容的提问来源于stack exchange,提问作者a Caveman
相关产品推荐
相关产品推荐

