日期:2014-05-16 浏览次数:20488 次
*************************************************************************************************
// date?? 2008-1-24
// auth?? mircle
//? qq???? 83529101
//msn??? ?mircle_wang@hotmail.com
// class? oracle
**************************************************************************************************
(部门--人员 一对多 一个部门可以有多个员工,同一个部门内员工不重名)
employee 表
| 部门 | 人员 |
| A | tom |
| A | john |
| A | mary |
| ? | ? |
| B | longman |
| B | solong |
| ? | ? |
| C | tomy |
| C | lincon |
----------------------------------- -----------------------
增加一列序号 :要求 序号要按部门不同 从1开始计数
要得到的结果如下
-------------------------------------------------------------
| 部门 | 人员 | 序号 |
| A | john | 1 |
| A | mary | 2 |
| A | tom | 3 |
| ? | ? | ? |
| B | longman | 1 |
| B | solong | 2 |
| ? | ? | ? |
| C | lincon | 1 |
| C | tomy | 2 |
-------------------------------------------------------------
| ?oracle sql: |
| select 部门,人员,(select sum(1) from employee emA ???????????????????????????? where? emA.部门=emB.部门 ????????????????????????????? and??? emA.人员<=emB.人员) as 序号 from employee emB order by emB.部门,emB.人员? ? |
这个sql智慧的地方是在:
?
计算小于它的有多少条记录来计算它的序号
---------------------------------------------------------------
?