有查询语句1:
select STD_AREA_ID,EVENT_TYPE_ID  
        sum(BILL_DURATION) GX_CAL_DURATION
   from DB.TBMID_CALL_EVT_C10_201002 partition(area_id_10) 
  where EVENT_TYPE_ID in                                 
        (select EVENT_TYPE_ID                            
           from pub.TPDIM_EVENT_TYPE                     
          where EVENT_TYPE_NAME LIKE '%IP%')              
    and LONG_TYPE_CD in ('2000', '3000')       
    AND call_type_cd <> '3'         
  group by STD_AREA_ID,EVENT_TYPE_ID;
这个查询语句没有报错。但是:
select EVENT_TYPE_ID                            
  from pub.TPDIM_EVENT_TYPE                     
 where EVENT_TYPE_NAME LIKE '%IP%'字段 EVENT_TYPE_ID 并不在表pub.TPDIM_EVENT_TYPE 中。
请问,为什么查询语句1却不报错呢??

解决方案 »

  1.   

    确实比较诡异
    楼主怎么执行的,在什么环境下执行的?
    是否有pub用户的表TPDIM_EVENT_TYPE权限
      

  2.   

    这个语句的相关部分相当于
    where EVENT_TYPE_ID in 
    (select DB.TBMID_CALL_EVT_C10_201002.EVENT_TYPE_ID 
    from pub.TPDIM_EVENT_TYPE 
    where EVENT_TYPE_NAME LIKE '%IP%') 
      

  3.   

    TPDIM_EVENT_TYPE.EVENT_TYPE_ID  这样能点出来不..........
      

  4.   

    第二个语句出现的问题好像是无权访问方案PUB下的那张表。
      

  5.   

    建议用加上表名,可能是PL/SQL问题
      

  6.   

    我是在同一个用户下执行的,是有权限的
    这就是这个问题怪异的地方了···  呵呵···
    唯一的解释可能就像wildwave(狂浪) 说的那样