oracle view left outer join 问题

CREATE OR REPLACE VIEW EMS_EMEASURE_WEEK_VIEW AS
(SELECT T1.EMS_EMPL_INFO_WEEK_ID,
       T1.E_MEASURE_ID,
       T1.DAY_IN_YEAR,
       EMS_EMEASURE_AMPM_VIEW.BIZ,
       EMS_EMEASURE_AMPM_VIEW.PRONAME,
       EMS_EMEASURE_AMPM_VIEW.PM,
       EMS_EMEASURE_AMPM_VIEW.PMID,
       EMS_EMEASURE_AMPM_VIEW.AM,
       EMS_EMEASURE_AMPM_VIEW.AMID
  FROM (SELECT EMS_EMPL_INFO_WEEK.EMS_EMPL_INFO_WEEK_ID,
               EMS_EMPL_INFO_WEEK.E_MEASURE_ID,
               EMS_EMPL_INFO_WEEK.DAY_IN_YEAR
          FROM EMS_EMPL_INFO_WEEK
         WHERE EMS_EMPL_INFO_WEEK.E_MEASURE_ID IS NOT NULL) T1
  LEFT OUTER JOIN EMS_EMEASURE_AMPM_VIEW ON T1.E_MEASURE_ID =
                                            EMS_EMEASURE_AMPM_VIEW.EID)

 使用另一张表和该view左连接

SELECT T1.DATE_VALUE,
       T2.DAY_IN_YEAR,
       T2.EMS_EMPL_INFO_WEEK_ID,
       T2.E_MEASURE_ID
  FROM (SELECT DATE_DIM.DATE_VALUE
          FROM DATE_DIM
         WHERE DATE_DIM.DATE_VALUE = TO_DATE('11/16/2011', 'MM/DD/YYYY')) T1
  LEFT OUTER JOIN (SELECT *
                     FROM EMS_EMEASURE_WEEK_VIEW
                    WHERE EMS_EMEASURE_WEEK_VIEW.DAY_IN_YEAR =
                          TO_DATE('11/16/2011', 'MM/DD/YYYY')) T2 ON T1.DATE_VALUE =
                                                                     T2.DAY_IN_YEAR    

 出来3w+条数据

如果不是用view而是直接使用表连接

SELECT T1.DATE_VALUE,
       T2.DAY_IN_YEAR,
       T2.EMS_EMPL_INFO_WEEK_ID,
       T2.E_MEASURE_ID
  FROM (SELECT DATE_DIM.DATE_VALUE
          FROM DATE_DIM
         WHERE DATE_DIM.DATE_VALUE = TO_DATE('11/16/2011', 'MM/DD/YYYY')) T1
  LEFT OUTER JOIN (SELECT *
                     FROM EMS_EMPL_INFO_WEEK
                    WHERE EMS_EMPL_INFO_WEEK.DAY_IN_YEAR =
                          TO_DATE('11/16/2011', 'MM/DD/YYYY')
                      AND EMS_EMPL_INFO_WEEK.E_MEASURE_ID IS NOT NULL) T2 ON T1.DATE_VALUE =
                                                                             T2.DAY_IN_YEAR

 却只有300+条正确的数据~

纠结了一天,无法解决。。。

posted @ 2011-11-28 22:23  lostyue  阅读(692)  评论(0)    收藏  举报