起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 148|回复: 5

Oracle 9i 中某数据表用not in不能有效筛选出某些数据。

[复制链接]
发表于 2010-3-15 11:33:54 | 显示全部楼层 |阅读模式
我们在施工服务类采购中,一直用not in的方式,来排除防止已有的项目再次重复立项,但是最经这个方法出错了,不知是数据出错,还是数据库出错,not in直接把一些合乎条件的选项也全部排除掉,导致从未立项的新项目也不能立项。



我们反过来,在Oracle用 in  来筛选数据,却完全没问题。
回复

使用道具 举报

发表于 2010-3-15 13:23:32 | 显示全部楼层
楼主,确定SQL逻辑没问题吗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-3-15 17:12:23 | 显示全部楼层
SELECT RES_OBJECTESTAPPLYBILL2.PROJECTID, RES_OBJECTESTAPPLYBILL2.PROJECTNAME, RES_OBJECTESTAPPLYBILL2.FINISHSIGN
  FROM RES_OBJECTESTAPPLYBILL2
  WHERE RES_OBJECTESTAPPLYBILL2.FINISHSIGN = 1 and RES_OBJECTESTAPPLYBILL2.PROJECTNAME not in (select ERS_DIRECTOFFERMAIN.ProjectName from ERS_DIRECTOFFERMAIN)
  ORDER BY RES_OBJECTESTAPPLYBILL2.PROJECTID

--------------------------------------------------------------------------------

项目立项申请单.完成标志 = 1 and 项目立项申请单.项目名称 not in (select ERS_DIRECTOFFERMAIN.ProjectName from ERS_DIRECTOFFERMAIN)

---------------------------------------------------------

逻辑,我们可以确定,无误。
回复 支持 反对

使用道具 举报

发表于 2010-3-16 13:46:23 | 显示全部楼层
你可以用数据库监视sql的方法看看平台发的什么sql,是否有错误,或者
你发一个资源包过来,带测试数据的。我恢复环境看一下为什么不出来。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-3-23 11:26:42 | 显示全部楼层
Oracle数据已经恢复正常。
回复 支持 反对

使用道具 举报

发表于 2010-3-23 13:31:40 | 显示全部楼层
楼主,啥意思?现在没有1楼的问题了?
如果是,说说咋解决的?
如果不是,5楼是啥意思呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-10 04:57 , Processed in 0.036339 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表