Lookup_code定义


Lookup Code(快速编码)设置

1、定义Lookup_code :

    应用开发员-》应用产品-》代码-》公用

    访问级别:用户----完全由用户自定义及修改;

                    可扩展----一部分属于系统预置,不可更改;用户可添加新的部分,且可修改;

                    系统---完全属于系统预置,不可更改
如下SQL需查找并统计年假未休,现报错ORA-00942,请协助修改, 并优化oracle如下SQL性能,提高执行效率和减少资源占用: WITH EMP_BASE AS ( SELECT EMP_CODE, EMP_NAME, ANNUAL_LEAVE, YEAR, DECODE(HPB.WORK_PLACE, 0, '一园', 1, '二园', 2, '三园','','NULL', HPB.WORK_PLACE) AS PLANT, HCP.SF_LSHR_NO_GET(EMP_CODE, 14) AS DIV, HCP.SF_LSHR_NO_GET(EMP_CODE, 15) AS DEPT_NAME, HCP.SF_LSHR_NO_GET(EMP_CODE, 13) AS CLASS_NAME, SUBSTR(HCP.SF_LSHR_NO_GET(EMP_CODE, 15), LENGTH(HCP.SF_LSHR_NO_GET(EMP_CODE, 15))-5) AS DEPT_NO, HCP.SF_LSHR_NO_GET(EMP_CODE, 2) AS SEGMENT_NO, HCP.SF_LSHR_NO_GET(EMP_CODE, 9) AS EMAIL_FIELD9, HCP.SF_LSHR_NO_GET(EMP_CODE, 10) AS EMAIL_FIELD10, HCP.SF_LSHR_NO_GET(EMP_CODE, 11) AS EMAIL_FIELD11 FROM HCP.v_clk_tz_annual_leave JOIN HCP.TZ_EMP_IN HPB ON EMP_CODE=HPB.EMPCODE WHERE ANNUAL_LEAVE > 0 AND YEAR = TO_NUMBER(TO_CHAR(SYSDATE, 'yyyy')) AND ((TO_CHAR(SYSDATE, 'mm') IN ('04', '05', '06', '07', '08', '09') AND TRUNC(SYSDATE) IN (SELECT MAX(B.A) FROM (SELECT TRUNC(SYSDATE, 'mm') + ROWNUM - 1 A FROM DBA_OBJECTS WHERE ROWNUM < 32) B WHERE TO_CHAR(B.A, 'day') = 'friday ')) OR (TO_CHAR(SYSDATE, 'mm') IN ('10', '11') AND TO_CHAR(SYSDATE, 'Day') = 'Friday ') OR TO_CHAR(SYSDATE, 'mm') = '12') ), LOOKUP_PREP AS ( SELECT REVERSE2, MEANING, HCP.SF_LSHR_NO_GET(MEANING, 8) AS V_EMAIL FROM HCP.KS_LOOKUP_VALUE WHERE LOOKUP_TYPE = 'DEPT_PEOPLE' AND ENABLED = 'Y' ), DEPT_PEOPLE AS ( SELECT E.EMP_CODE, L.V_EMAIL, ROW_NUMBER() OVER ( PARTITION BY E.EMP_CODE ORDER BY CASE WHEN L.REVERSE2 = E.DEPT_NO THEN 1 ELSE 2 END ) AS rnk FROM EMP_BASE E JOIN LOOKUP_PREP L ON L.REVERSE2 IN (E.DEPT_NO, E.SEGMENT_NO) ), GROUPED_DATA AS ( SELECT E.PLANT, E.DIV, E.DEPT_NAME, E.CLASS_NAME, COUNT(E.EMP_CODE) AS UNPEOPLE, SUM(E.ANNUAL_LEAVE) AS UNDAY, MAX(D.V_EMAIL) || ';' || HCP.SF_LSHR_NO_GET(MAX(E.EMAIL_FIELD9), 8) AS TOEMAIL, HCP.SF_LSHR_NO_GET(MAX(E.EMAIL_FIELD10), 8) || ';' || HCP.SF_LSHR_NO_GET(MAX(E.EMAIL_FIELD11), 8) AS CCEMAIL FROM EMP_BASE E JOIN DEPT_PEOPLE D ON E.EMP_CODE = D.EMP_CODE AND D.rnk = 1 GROUP BY E.PLANT, E.DIV, E.DEPT_NAME, E.CLASS_NAME ) SELECT PLANT 厂区, DIV 处级, DEPT_NAME 部门名称, CLASS_NAME 课别名称, UNPEOPLE 未休人数, UNDAY 未休天数, TOEMAIL, CCEMAIL FROM(SELECT PLANT, DIV, DEPT_NAME, CLASS_NAME, UNPEOPLE, UNDAY, TOEMAIL, CCEMAIL FROM GROUPED_DATA UNION ALL SELECT '合计', '', '', '', COUNT(EMP_CODE), SUM(ANNUAL_LEAVE), '', '' FROM EMP_BASE WHERE ANNUAL_LEAVE > 0) WHERE UNDAY IS NOT NULL ORDER BY PLANT, DIV, DEPT_NAME, CLASS_NAME
07-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值