论坛首页 综合技术论坛

oracle9i单表分组问题,有点搞人!

浏览 15233 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-04-09  
    可以考虑用临时表,先把人员按人员类别insert到某张表,当然可以是临时表。表定义就是人员类别和人员代码。然后用人员类别(管理人员等)来循环。当循环到某种类别的人(比如是管理人员)时,再对临时表中符合条件的人员进行统计,再插入到另一张临时表当中。这样人员条件只要写一次,而且比较清楚。我们对多单位多种信息人数的汇总还有金额的汇总就是用这个方法。当然这就不光光是语句了,要用存储过程了。大体思路是这样,具体表设计当然还要看你的具体要求。
0 请登录后投票
   发表时间:2008-04-10  
可以考虑这样做
select sum(decode(t1.degree_title, '初级', 1, 0) n,
       sum(decode(t1.duty,'管理人员', 1, 0)) o
from t1

或者用case when方式代替decode
0 请登录后投票
   发表时间:2008-04-11  
这种问题我觉得比较好的做法是先统计出行数据需要的信息,然后分行得到统计数据的结果比较好
0 请登录后投票
   发表时间:2008-09-10  
可以这样,把同一个表起不同的别名,和你的列个数一样,然后where中的条件都有一样的,即:
select a.id,b.name,c.birthday from employee a,employee b,employee c
where X and Y and Z;

X、Y、Z是同一个where条件,用不同的别名代替就可以
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics