高手请进:一个要求很简单,但是很难的写的SQL语句 公司每个员工都有核定福利,按照福利多少排序如下:-----------------姓名 福利 A 200B 100C 50-----------------假设X= 250,则-----------------姓名 福利 分配A 200 200B 100 50C 50 0-----------------公司目前有福利款X元,小于所有员工合计福利。按福利大小顺序给员工发放,直至福利款发放完毕,请问该SQL如何写? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 A 200 200B 100 50C 50 0--加权平均么 有个分析函数RATIO_TO_REPORT 功能描述:该函数计算expression/(sum(expression))的值,它给出相对于总数的百分比,即当前行对sum(expression)的贡献。SAMPLE:下例计算每个员工的工资占该类员工总工资的百分比SELECT last_name, salary, RATIO_TO_REPORT(salary) OVER () AS rr FROM employeesWHERE job_id = 'PU_CLERK';LAST_NAME SALARY RR------------------------- ---------- ----------Khoo 3100 .223021583Baida 2900 .208633094Tobias 2800 .201438849Himuro 2600 .18705036Colmenares 2500 .179856115 SQL> select * from maoj1;NAME MONEY---------- ----------A 200B 100C 50D 150SQL> SQL> select name, money, decode(sign(&x - smoney), 1, money, decode(sign(&x - smoney + money), 1, &x - smoney + money, 0)) from ( 2 select name, money, sum(money) over(order by money desc)as smoney 3 from maoj1 order by money desc 4 ) 5 ;NAME MONEY DECODE(SIGN(253-SMONEY),1,MONE---------- ---------- ------------------------------A 200 200D 150 53B 100 0C 50 0 RPAD ('_', 3)返回什么值啊 数据库查询语句功能 急!帮我看看这是什么意思?? 函数中如何获得 CURSOR 游标的大小 ??? 关于存储过程的小问题 有带参数的视图吗? linux9安装oracle9i的问题??急 装完ORACLE9i后,却没有ORACLE MANAGEMENT SERVER ?? 有用ERWin4.1设计数据库的吗?中文显示问题是如何解决的? 如何安装 nt 或2000 server (为运行oracle) 日期to_date('00-00-0000', 'dd-mm-yyyy')的问题? 为什么我建的存储过程运行不了?
B 100 50
C 50 0
--加权平均么
RATIO_TO_REPORT
功能描述:该函数计算expression/(sum(expression))的值,它给出相对于总数的百分比,即当前行对sum(expression)的贡献。
SAMPLE:下例计算每个员工的工资占该类员工总工资的百分比SELECT last_name, salary, RATIO_TO_REPORT(salary) OVER () AS rr
FROM employees
WHERE job_id = 'PU_CLERK';LAST_NAME SALARY RR
------------------------- ---------- ----------
Khoo 3100 .223021583
Baida 2900 .208633094
Tobias 2800 .201438849
Himuro 2600 .18705036
Colmenares 2500 .179856115
---------- ----------
A 200
B 100
C 50
D 150SQL>
SQL> select name, money, decode(sign(&x - smoney), 1, money, decode(sign(&x - smoney + money), 1, &x - smoney + money, 0)) from (
2 select name, money, sum(money) over(order by money desc)as smoney
3 from maoj1 order by money desc
4 )
5 ;NAME MONEY DECODE(SIGN(253-SMONEY),1,MONE
---------- ---------- ------------------------------
A 200 200
D 150 53
B 100 0
C 50 0