我的sql文如下:
SELECT
N.NYUSHUKKA_MEISAI_ID, T.TANTOSHA_CD, S.SS_CD SHUKKASAKI_SS_CD
FROM
MRT_T_NYUSHUKKA_MEISAI N, MRT_M_SS_TANTOSHA T, MRT_M_SS S
WHERE
N.TANTOSHA_CD=T.TANTOSHA_CD(+)
AND N.SHUKKASAKI_SS_CD=S.SS_CD
AND N.SHUKKAMOTO_SS_CD=:SHUKKAMOTO_SS_CD
AND N.NYUSHUKKA_KBN='1'
AND N.DEL_FLG='0'
AND T.DEL_FLG='0'
AND S.DEL_FLG='0'
AND TO_CHAR(N.NYUSHUKKA_DATE,'YYYY/MM/DD') = :NYUSHUKKA_DATE
ORDER BY
N.NYUSHUKKA_DATE, N.SEIZO_NO, N.SHUKKASAKI_SS_CD DESC
原意是N.TANTOSHA_CD=T.TANTOSHA_CD(+) 进行左连接,同时T表的DEL_FLG必须为0,但是,现在在T表中存在DEL_FLG为0的数据,但是N.TANTOSHA_CD!=T.TANTOSHA_CD时,检索不到数据,将
AND T.DEL_FLG='0'这个检索条件删掉后就能正常检索出数据,请各位大虾解释下原因,谢谢!
SELECT
N.NYUSHUKKA_MEISAI_ID, T.TANTOSHA_CD, S.SS_CD SHUKKASAKI_SS_CD
FROM
MRT_T_NYUSHUKKA_MEISAI N, MRT_M_SS_TANTOSHA T, MRT_M_SS S
WHERE
N.TANTOSHA_CD=T.TANTOSHA_CD(+)
AND N.SHUKKASAKI_SS_CD=S.SS_CD
AND N.SHUKKAMOTO_SS_CD=:SHUKKAMOTO_SS_CD
AND N.NYUSHUKKA_KBN='1'
AND N.DEL_FLG='0'
AND T.DEL_FLG='0'
AND S.DEL_FLG='0'
AND TO_CHAR(N.NYUSHUKKA_DATE,'YYYY/MM/DD') = :NYUSHUKKA_DATE
ORDER BY
N.NYUSHUKKA_DATE, N.SEIZO_NO, N.SHUKKASAKI_SS_CD DESC
原意是N.TANTOSHA_CD=T.TANTOSHA_CD(+) 进行左连接,同时T表的DEL_FLG必须为0,但是,现在在T表中存在DEL_FLG为0的数据,但是N.TANTOSHA_CD!=T.TANTOSHA_CD时,检索不到数据,将
AND T.DEL_FLG='0'这个检索条件删掉后就能正常检索出数据,请各位大虾解释下原因,谢谢!
解决方案 »
- oracle using用法
- delete from xxx
- 如何进入oracle10g的web管理界面
- 用form 10g打开form 6i开发的form文件报错!
- 简单的模糊查找
- 那位大哥有linux as4 下安装oracle9204的文档,要亲自试过成功的!
- 怎么实现边算边查?在查询的时候根据数据表中的字段的数值计算(例如计算平均值)再将符合标准的显示出来?
- asp.net连接oracle数据库:提示“无法加载oci.dll”
- 请问安装Oracle9i时,数据库服务器(三碟)和客户端管理工具(一碟)能否安装在同一台电脑上吗?
- 请问将字符集为AMERICAN_AMERICA.US7ASCII数据库里的表导到另一个字符集为SIMPLIFIED CHINESE_CHINA.ZHS16GBK的数据里如何使中文正常显示
- 关于exp/imp内嵌到应用中的问题
- 请问存储过程插入大数据的方法?
问题大概出在T.TANTOSHA_CD列有空值
如果N.NYUSHUKKA_DATE列有索引
TO_CHAR(N.NYUSHUKKA_DATE,'YYYY/MM/DD') = :NYUSHUKKA_DATE改成N.NYUSHUKKA_DATE - TO_DATE(:NYUSHUKKA_DATE,'YYYY/MM/DD') < 1更高效一些