SELECT H.EMPNO,E.ENAME,H.HIST_TYPE,T.TYPE_DESC,COUNT(*)

FROM HISTORY_TYPE T,EMP E,EMP_HISTORY H

WHERE H.EMPNO = E.EMPNO

AND H.HIST_TYPE = T.HIST_TYPE

GROUP BY H.EMPNO,E.ENAME,H.HIST_TYPE,T.TYPE_DESC;

通过调用下面的函数可以提高效率.

FUNCTION LOOKUP_HIST_TYPE(TYP IN NUMBER) RETURN VARCHAR2

AS

TDESC VARCHAR2(30);

CURSOR C1 IS

SELECT TYPE_DESC

FROM HISTORY_TYPE

WHERE HIST_TYPE = TYP;

BEGIN

OPEN C1;

FETCH C1 INTO TDESC;

CLOSE C1;

RETURN (NVL(TDESC,’?’));

END;

FUNCTION LOOKUP_EMP(EMP IN NUMBER) RETURN VARCHAR2

AS

ENAME VARCHAR2(30);

CURSOR C1 IS

SELECT ENAME

FROM EMP

WHERE EMPNO=EMP;

BEGIN

OPEN C1;

FETCH C1 INTO ENAME;

CLOSE C1;

RETURN (NVL(ENAME,’?’));

END;

SELECT H.EMPNO,LOOKUP_EMP(H.EMPNO),

H.HIST_TYPE,LOOKUP_HIST_TYPE(H.HIST_TYPE),COUNT(*)

FROM EMP_HISTORY H

GROUP BY H.EMPNO , H.HIST_TYPE;

 ( 经常在论坛中看到如能不能用一个SQL写出….’ 的贴子, 殊不知复杂的SQL往往牺牲了执行效率. 能够掌握上面的运用函数解决问题的方法在实际工作中是非常有意义的)

最新文章

  1. Paypal支付小记
  2. c++11新的小猫腻
  3. 动态规划VS分治策略
  4. IDEA 中 显示 *.properties 为中文
  5. Python中的逗号有什么作用?
  6. http://blog.sina.com.cn/s/blog_5f103c9c0101atny.html
  7. 计算机网络及TCP/IP知识点(全面,慢慢看)
  8. [原创]EnterpriseDB测试key申请方法
  9. C++实现元组
  10. bzoj2257
  11. security Export/import
  12. 演示基于SDL2.0+FFmpeg的播放器
  13. C/C++中peek函数的原理及应用
  14. MySQL查询机制
  15. jquery 禁止回车事件响应
  16. Mike and strings CodeForces - 798B (又水又坑)
  17. Pandas基础知识(二)
  18. 开始记录 Windows Phone 生涯
  19. 【CV】CVPR2015_A Discriminative CNN Video Representation for Event Detection
  20. winform 使用线程

热门文章

  1. CHARINDEX函数
  2. 我的第一个可用的Windows驱动完成了
  3. python中操作json
  4. JSON和JSONP,原来ajax引用这个来实现跨域访问的
  5. 【linux配置】VMware安装Redhat6.5
  6. jQuery 图片上传
  7. HttpClient 该知道一些概念
  8. 【软件安装】Linux下安装OpenSSL
  9. 【51NOD1028】大数乘法 V2
  10. day39-Spring 01-上次课内容回顾