【发布时间】:2011-04-11 09:32:45
【问题描述】:
我需要获取已删除sw='0' 和 eventdtm=sysdate-12 的活动名称。但是为了获得活动的全名,我认为它正在进行自我加入。但我不确定如何在这些查询中包含这些条件。谁能帮忙
SELECT
(DECODE(levelLess3.activitynm, NULL, '', levelLess3.activitynm || '/') ) ||
(DECODE(levelLess2.activitynm, NULL, '', levelLess2.activitynm || '/') ) ||
(DECODE(levelLess1.activitynm, NULL, '', levelLess1.activitynm || '/') ) ||
wa.activitynm as ACTIVITYFULLNM
FROM wfaactivity wa
LEFT OUTER JOIN WFAACTIVITY levelless1 ON (wa.parentid = levelless1.wfaactivityid
AND levelless1.wfaactivityid != wa.wfaactivityid)
LEFT OUTER JOIN WFAACTIVITY levelless2 ON (levelless1.parentid = levelless2.wfaactivityid
AND levelless2.wfaactivityid != levelless1.wfaactivityid)
LEFT OUTER JOIN WFAACTIVITY levelless3 ON (levelless2.parentid = levelless3.wfaactivityid
AND levelless3.wfaactivityid != levelless2.wfaactivityid)
我想包含类似的条件
where wa.wfaactivityid=wspan.wfaactivityid
and wspan.deletedsw='0'
and to_char(wspan.eventdtm, 'yyyymmdd') >= to_char(sysdate-12,'yyyymmdd')
wspan 是另一个表,我们从中获取 deletedsw 和 eventdtm
是的,我是这样给的
SELECT
(DECODE(levelLess3.activitynm, NULL, '', levelLess3.activitynm || '/') ) ||
(DECODE(levelLess2.activitynm, NULL, '', levelLess2.activitynm || '/') ) ||
(DECODE(levelLess1.activitynm, NULL, '', levelLess1.activitynm || '/') ) ||
wa.activitynm as ACTIVITYFULLNM
FROM wfaactivity wa,WFAREPACTYSPAN wspan
where
wa.wfaactivityid=wspan.wfaactivityid
and wspan.deletedsw='0'
and to_char(wspan.eventdtm, 'yyyymmdd') >= to_char(sysdate-12,'yyyymmdd')
and
LEFT OUTER JOIN WFAACTIVITY levelless1 ON (wa.parentid = levelless1.wfaactivityid
AND levelless1.wfaactivityid != wa.wfaactivityid)
LEFT OUTER JOIN WFAACTIVITY levelless2 ON (levelless1.parentid = levelless2.wfaactivityid
AND levelless2.wfaactivityid != levelless1.wfaactivityid)
LEFT OUTER JOIN WFAACTIVITY levelless3 ON (levelless2.parentid = levelless3.wfaactivityid
AND levelless3.wfaactivityid != levelless2.wfaactivityid)
但我收到错误 ORA-00920 无效的关系运算符
【问题讨论】:
-
那么当您添加
WHERE-clause 时问题出在哪里?有什么错误吗?您也只需加入 wspan。