外连接返回多行

时间:2013-06-10 17:00:20

标签: sql oracle outer-join

我在PER_ALL_ASSIGNMENTS_F上加入APPS.PER_JOBS,希望获得当前行 - 但除非我将REQUEST_ID添加到连接中,否则我会获得多行。但是,当我这样做时 - 尽管它会抑制多行 - 它也会导致我使用的子字符串拉动Title以返回所有记录的Null值。如何连接这些表以仅拉出当前行而不会导致我的Title子字符串为空?

这是我现在拥有的外部联接:

APPS.PER_ALL_ASSIGNMENTS_F B 
   LEFT OUTER JOIN (SELECT * 
                    FROM APPS.PER_JOBS F_ED
                    WHERE F_ED.DATE_FROM = (SELECT MAX(F_ED1.DATE_FROM) 
                                            FROM APPS.PER_JOBS F_ED1
                                            WHERE F_ED1.JOB_ID = F_ED.JOB_ID
                                            AND F_ED1.DATE_FROM <= SYSDATE)) F
     ON  F.JOB_ID = B.JOB_ID 
         AND F.REQUEST_ID = B.REQUEST_ID

这是标题子串:

SUBSTR(F.NAME,INSTR(F.NAME,'.')+1) AS "Occupation"

谢谢, 史蒂夫

编辑:这是一个例子:

没有'F.REQUEST_ID = B.REQUEST_ID':

员工编号职业 597特别活动经理 632 Web开发人员 632软件开发人员 8392发展实习生 8392软件开发人员

使用'F.REQUEST_ID = B.REQUEST_ID':

员工编号职业 597 632 8392

0 个答案:

没有答案