站长网 百科 oracle – ORA-01799:一个列可能没有外连到子查询

oracle – ORA-01799:一个列可能没有外连到子查询

这是我的查询 SELECT COUNT(C.SETID)FROM MYCUSTOMER C LEFT OUTER JOIN MYCUSTOPTION CO ON (C.SETID = CO.SETID AND C.CUST_ID = CO.CUST_ID AND CO.effdt = ( SELECT MAX(COI.EFFDT) FROM MYCUSTOPTION COI WHERE COI.SETID = CO.SETID AND COI.CUST_ID

这是我的查询

SELECT 
    COUNT(C.SETID)
FROM 
    MYCUSTOMER C
    LEFT OUTER JOIN MYCUSTOPTION CO 
    ON 
        (C.SETID = CO.SETID 
            AND C.CUST_ID = CO.CUST_ID 
            AND CO.effdt = ( 
                SELECT MAX(COI.EFFDT) 
                FROM MYCUSTOPTION COI 
                WHERE 
                    COI.SETID = CO.SETID 
                                    AND COI.CUST_ID = CO.CUST_ID 
                                    AND COI.EFFDT <=SYSDATE    
                )
    )

这里是我正在收到的错误信息..

我究竟做错了什么???

您可以通过推动子查询来重写它,使其不外部连接:

select Count(C.setid)
  from mycustomer C
       left outer join (select *
                          from mycustoption co
                         where co.effdt <= (select Max(COI.effdt)
                                              from mycustoption COI
                                             where COI.setid = co.setid
                                               and COI.cust_id = co.cust_id
                                               and COI.effdt <= sysdate)) co
                    on ( C.setid = CO.setid
                         and C.cust_id = CO.cust_id )

本文来自网络,不代表站长网立场,转载请注明出处:https://www.zwzz.com.cn/html/baike/2021/0523/4912.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部