0

我正在构建一个复杂的查询。首先这是我的查询

select LOSA_APP.app_ref_no AS "App.Ref.No." 
from losa_app LOSA_APP, 
     losa_app_z LOSA_APP_Z
where 
    LOSA_APP.app_status='A' 
and 
    trunc(sysdate) between (nvl(LOSA_APP_Z.li_dt, LOSA_APP_Z.li_collect_dt)) AND ((trunc(sysdate))) 
and
    (trunc(sysdate) - nvl(losa_app_z.li_dt,losa_app_z.li_collect_dt)) > 90  
and
    (select losa_app_z.app_ref_no 
     from losa_app_z 
     where (trunc(sysdate) - nvl(losa_app_z.li_dt, losa_app_z.li_collect_dt)) > 90
    )

问题是如果我单独运行最后一个查询或者我省略最后一个查询那么它运行良好,就像我只运行

 (select losa_app_z.app_ref_no 
  from losa_app_z 
  where (trunc(sysdate) - nvl(losa_app_z.li_dt, losa_app_z.li_collect_dt)) > 90)

但是如果我运行整个查询,那么我会收到错误

ORA-00936: missing expression
00936. 00000 -  "missing expression"
*Cause:    
*Action:
Error at Line: 7 Column: 128

第 7 行是我的最后一个查询and (select losa_app_z.app_ref_no from losa_app_z....所在的行。我做错了什么?请帮忙。

谢谢

4

1 回答 1

0

您应该比较此查询的结果

 and
 (select losa_app_z.app_ref_no 
  from losa_app_z 
  where (trunc(sysdate) - nvl(losa_app_z.li_dt, losa_app_z.li_collect_dt)) > 90
 ) = something_here

对某事。

对于未来,请始终尝试正确管理您的括号。必要时数一数。

于 2012-11-20T10:38:19.593 回答