我有这样一个SQL:
select count(ORG) num0
  from (select distinct T001.ORG, T001.ID, T001.SEQ_ID
          from VS_NYC_BASIC T001, V_CORP_NEWEST_WZ_NYC T008
         WHERE T001.CORP_ORG = T008.ORG(+)
           AND T001.CORP_ID = T008.ID(+)
           AND T008.ADMIT_MAIN IN ('10', '11', '12', '13', '18', '19')
           and ((T001.YHK_YEAR = '2008' and
               ((NOT EXISTS
                (SELECT NULL
                      FROM VS_NYC_BASIC T_YHK
                     WHERE T008.ORG = T_YHK.CORP_ORG
                       AND T008.ID = T_YHK.CORP_ID
                       AND T_YHK.YHK_YEAR = TO_CHAR(SYSDATE, 'YYYY') - 1)))) and
               (T001.CREATE_ORG in (876) and T008.CORP_STATUS in ('01'))))当查询条件为红色部分时,其他年度都是正常的,可到了(本年-1----目前指的就是2008年)的时候就查不到数据了,请问各位大虾我该怎么做才能解决这个问题,而又不影响其他年度呢(能贴出SQL的最好,非常感谢)??

解决方案 »

  1.   

    应该是你测试数据和SQL业务逻辑的问题,应该是表中没有符合相关2008的数据。
      

  2.   

    我表里有2008年的数据啊,我把那2个视图的代码页贴出来,大家帮忙看下,有没有什么问题
    VS_NYC_BASIC:
    CREATE OR REPLACE VIEW VS_NYC_BASIC AS
    SELECT "ORG",
           "ID",
           "SEQ_ID",
           "CORP_ORG",
           "CORP_ID",
           "CORP_SEQ_ID",
           "REG_NO",
           "CORP_CHINA_NAME",
           "CORP_ENG_NAME",
           "ADDR",
           "FARE_PLACE",
           "ECON_KIND",
           "BELONG_TRADE",
           "FARE_SCOPE",
           "INDIV_FORM_MODE",
           "REG_CAPI_TYPE",
           "INVEST_CURR_TYPE",
           "REG_CAPI",
           "FOR_COUNT_CAPI",
           "PERSON_ORG",
           "PERSON_ID",
           "PERSON_SEQ_ID",
           "CERTIFICATE_NO",
           "OPER_MAN_NAME",
           "TEL",
           "MOBILE",
           "ZIP",
           "FAX",
           "E_MAIL",
           "WEB_URL",
           "DIRECTOR_DEPT",
           "FARE_TERM_START",
           "FARE_TERM_END",
           "START_DATE",
           "LICENCE_TYPE",
           "CITY_VILL_SIGN",
           "PRAC_PERSON_NUM",
           "FOR_PERSON_NUM",
           "PART_PERSON_NUM",
           "EMP_NUM",
           "XG_NUM",
           "ASSETS_AMOUNT",
           "DEBT_AMOUNT",
           "NET_AMOUNT",
           "REAL_CAPITAL",
           "PRODUCTION_VALUE",
           "TURNOVER",
           "THROWTAX_PROFIT",
           "LOSE_MONEY_AMOUNT",
           "BAD_REASON",
           "LONG_INVEST",
           "PROFIT_TOTAL",
           "CLEAN_PROFIT",
           "LONG_OWES",
           "SALE_INCOME",
           "SERV_FARE_INCOME",
           "RATEPAYING_TOTAL",
           "CUSTOM",
           "IS_REPORT",
           "FINANCE_DEAL",
           "CONTACT_CORP",
           "CONTACT_FARE_DATE",
           "CONTACT_TERM",
           "PUT_PROD_DATE",
           "ZCXG_CIRCS",
           "ZCXGBA_CIRCS",
           "FOR_EXCHANGE_INCOME",
           "FOR_EXCHANGE_CANCEL",
           "UNIFY_CODE",
           "CORP_PRODUCE_STATUS",
           "CHANGE_ITEM",
           "YHK_YEAR",
           "DOC_NO",
           "YEARCHECK_STATUS",
           "MAIN_PRODUCTION",
           "INDIV_INVEST_KIND",
           "PARENT_CORP_NAME",
           "WEB_WRITE_MAN",
           "WRITE_MAN_IDCARD",
           "MANAGER",
           "CONTACT_MAN",
           "CREATE_ORG",
           "CREATE_DATE",
           "STATE",
           "STATE_DATE",
           "PRINT_FLAG",
           "REG_COUNTRY",
           "NYC_OPERATE",
           "BELONG_ORG",
           "PRIVATE_SIGN",
           "BELONG_DIST_ORG",
           "GAOXIAO_NUM",
           "LINGSHOU",
           sale_income yy_income,
           case when
           (select count(*) from g$job_log where main_id=t_nyc_basic.id and flow_Id in (3031,3032,3034,3033))>0 then 1 else 0 end  shushi_num,
           case when
           (select count(*) from g$job_log where main_id=t_nyc_basic.id and flow_Id in (3031,3032,3034,3033))=0 then 1 else 0 end  wang_num
      FROM T_NYC_BASIC
     WHERE YEARCHECK_STATUS IS NOT NULL
       AND YEARCHECK_STATUS <> 'H'
       AND NYC_OPERATE IN ('01', '02')
    V_CORP_NEWEST_WZ_NYC:
    CREATE OR REPLACE VIEW V_CORP_NEWEST_WZ_NYC AS
    SELECT "ORG","ID","SEQ_ID","CREATE_ORG","NAME_REG_NO","REG_NO",
    "CORP_NAME","ADDR","FARE_PLACE","BELONG_ORG","CONSIGN_ORG",
    "BELONG_DIST_ORG","BELONG_TRADE","ECON_KIND","ADMIT_MAIN","START_DATE",
    "CHECK_DATE","OPER_MAN_IDENT_NO","OPER_MAN_NAME","CORP_STATUS",
    "CORP_OPERATE","REG_CAPI","FARE_TERM_START","FARE_TERM_END",
    "CREDIT","FARE_SCOPE","UNIFY_CODE","OLD_ORG_CANCEL_SIGN",
    "MOVE_TO_ORG","CREATE_DATE","STATE","STATE_DATE","COME_OUT",
    "SURROGATE_SIGN","WRITEOFF_DATE","REVOKE_DATE","YEARCHK_DATE",
    "LAST_SEQ_ID","ORD","CANCEL_FLAG","OVER_DAYS","OLD_REG_NO","ABUITEM","CBUITEM",
    FUN_wznyc_realcapi(org,id,seq_id,1) "WS_REAL_CAPI", --外方实缴额万美元
    FUN_wznyc_realcapi(org,id,seq_id,2) "WS_REAL_CAPI_RMB",--外方实缴额万元
    FUN_wznyc_realcapi(org,id,seq_id,3) "REAL_CAPI_RMB",--实收资本万元
    (select b.name from t_dict_corp_type b where econ_kind=b.id) qylx
    FROM V_CORPV_CORP:
    CREATE OR REPLACE VIEW V_CORP AS
    SELECT "ORG",
           "ID",
           "SEQ_ID",
           "CREATE_ORG",
           "NAME_REG_NO",
           "REG_NO",
           "CORP_NAME",
           "ADDR",
           "FARE_PLACE",
           "BELONG_ORG",
           "CONSIGN_ORG",
           "BELONG_DIST_ORG",
           "BELONG_TRADE",
           "ECON_KIND",
           "ADMIT_MAIN",
           "START_DATE",
           decode (corp_status,'03',revoke_date,'02',writeoff_date,'01',check_date,'04',check_date,'12',check_date,'13',check_date,check_date) "CHECK_DATE",
           "OPER_MAN_IDENT_NO",
           "OPER_MAN_NAME",
           "CORP_STATUS",
           "CORP_OPERATE",
           "REG_CAPI",
           "FARE_TERM_START",
           "FARE_TERM_END",
           "CREDIT",
           "FARE_SCOPE",
           "UNIFY_CODE",
           "OLD_ORG_CANCEL_SIGN",
           "MOVE_TO_ORG",
           "CREATE_DATE",
           "STATE",
           "STATE_DATE",
           "COME_OUT",
           "SURROGATE_SIGN",
           "WRITEOFF_DATE",
           "REVOKE_DATE",
           "YEARCHK_DATE",
           "LAST_SEQ_ID",
           "ORD",
           "CANCEL_FLAG",
           "OLD_REG_NO",
           (SELECT (SELECT GROUP_NAME
                      FROM T_JJHK_GROUP T1
                     WHERE T1.ORG = T2.GROUP_ORG
                       AND T1.ID = T2.GROUP_ID
                       AND ROWNUM < 2)
              FROM T_JJHK_GROUP_OBJECT T2
             WHERE T2.STATE = 'M'
               AND T2.CORP_ORG = T3.ORG
               AND T2.CORP_ID = T3.ID
               AND ROWNUM < 2) GROUP_NAME, --2008-09-08 zhouhl加入巡查组的字段
           TRUNC(SYSDATE)-FARE_TERM_END  OVER_DAYS,"ABUITEM","CBUITEM"
      FROM T_CORP T3
     WHERE (CORP_OPERATE >= '21' AND CORP_OPERATE <= '40') --2008-08-04 zhouhl再次修改,增加38,40
       AND (COME_OUT = '0' OR COME_OUT IS NULL)
       AND cancel_flag is null --2008-06-05 zhouhl添加里面的那些数字就别管了,只是一些标示。