EBS中定义的值集如何去掉重复记录

[复制链接]
查看11 | 回复9 | 2016-1-14 21:17:02 | 显示全部楼层 |阅读模式
问题如上,没有DISTINCT,没有GROUP BY。所用表为 mtl_planners ,per_people_f ,org_access,取当前职责能访问组织下的计划员。

回复

使用道具 举报

千问 | 2016-1-14 21:17:02 | 显示全部楼层
SELECT MP.PLANNER_CODE
,
PPF.FULL_NAME
FROMMTL_PLANNERS MP
,
PER_PEOPLE_F PPF
,
ORG_ACCESS OA
WHERE mp.employee_id = ppf.person_id
AND mp.organization_id = oa.organization_id
AND NVL(oa.disable_date,SYSDATE) >= SYSDATE
AND oa.responsibility_id = to_number(fnd_profile.value('RESP_ID'))
AND oa.resp_application_id = to_number(fnd_profile.value('RESP_APPL_ID'))
AND trunc(SYSDATE) BETWEEN ppf.effective_start_date AND ppf.effective_end_date
AND NOT EXISTS (SELECT'X'
FROM mtl_planners mp1
,org_access oa
WHEREmp.planner_code = mp1.planner_code
ANDmp.organization_id > mp1.organization_id
ANDmp1.organization_id = oa.organization_id
ANDNVL(oa.disable_date,SYSDATE) >= SYSDATE
ANDoa.responsibility_id = to_number(fnd_profile.value('RESP_ID'))
ANDoa.resp_application_id = to_number(fnd_profile.value('RESP_APPL_ID')))
ORDER BY mp.planner_code

回复

使用道具 举报

千问 | 2016-1-14 21:17:02 | 显示全部楼层
本帖最后由 objmodel 于 2013-1-10 14:25 编辑
上面写的是满足条件,但是效率不是很好,希望各位大神为小弟优化一下?
回复

使用道具 举报

千问 | 2016-1-14 21:17:02 | 显示全部楼层
把这个放到表那个段(select distinct a.kkk fomb,c ,d where b=c and c=d )
回复

使用道具 举报

千问 | 2016-1-14 21:17:02 | 显示全部楼层
PER_PEOPLE_F 表里一个员工会有两笔记录,或者多笔,要取当前生效且类型是employee的那笔。

回复

使用道具 举报

千问 | 2016-1-14 21:17:02 | 显示全部楼层
建个view
回复

使用道具 举报

千问 | 2016-1-14 21:17:02 | 显示全部楼层
yxplove 发表于 2013-1-10 15:53
把这个放到表那个段(select distinct a.kkk fomb,c ,d where b=c and c=d )

字符长度会超过限制的
回复

使用道具 举报

千问 | 2016-1-14 21:17:02 | 显示全部楼层
把数据量多的表,放在数据量少的表后边;比如 A(数据量大),B;可以把条件b.id=a.id 改为a.id=b.id ;日期格式的比较 可以先 is nullor >= ;betweenand可以改为 >= and <=
回复

使用道具 举报

千问 | 2016-1-14 21:17:02 | 显示全部楼层
不会,来学习一下啊。。。
回复

使用道具 举报

千问 | 2016-1-14 21:17:02 | 显示全部楼层
建个view
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行