mircle 发表于 2013-1-27 05:34:06

为分组查询添加一列按分组字段从1开始计数的序号列

*************************************************************************************************
// date   2008-1-24
// auth   mircle
//  qq     83529101
//msn     mircle_wang@hotmail.com
// class  oracle
**************************************************************************************************
(部门--人员 一对多 一个部门可以有多个员工,同一个部门内员工不重名)
employee 表

部门人员AtomAjohnAmary  BlongmanBsolong  CtomyClincon


----------------------------------------------------------------------- -----------------------
增加一列序号 :要求 序号要按部门不同 从1开始计数
要得到的结果如下
-------------------------------------------------------------------------------------------------

部门人员序号Ajohn1Amary2Atom3   Blongman1Bsolong2   Clincon1Ctomy2

-------------------------------------------------------------------------------------------------

 oracle sql: select 部门,人员,(select sum(1) from employee emA
                             where  emA.部门=emB.部门
                              and    emA.人员<=emB.人员) as 序号
from employee emB
order by emB.部门,emB.人员 
 


这个sql智慧的地方是在:
 
计算小于它的有多少条记录来计算它的序号
---------------------------------------------------------------------------------------------------
 
页: [1]
查看完整版本: 为分组查询添加一列按分组字段从1开始计数的序号列