3

給与テーブルが与えられ、従業員の累積給与を出力する単一のクエリを作成する必要があります。例えば:

Emp  Sal
A    10
B    15
C    20
D    5


OutPut:

Emp  Sal   Cum_Sal
A    10      10
B    15      25
C    20      45
D    5       50
4

3 に答える 3

2

一部の RDBMS (PostgreSQL、SQL Server 2012、Oracle など) では、ウィンドウ関数を使用できます。

select
    Emp, Sal, sum(Sal) over(order by Emp) as Cum_Sal
from employees

それが不可能な場合は、自己結合を使用できます

select
    e1.Emp, e1.Sal, sum(e2.Sal) as Cum_Sal
from employees e1
    inner join employees e2 on e2.Emp <= e1.Emp
group by e1.Emp, e1.Sal

sql fiddle demo

どちらの場合も、ローリング合計の順序を定義する必要があることに注意してください (上記のクエリでは、Emp列ごとに並べられています)。

于 2013-09-26T18:23:44.783 に答える
-2

ここに画像の説明を入力

select e.name,e.joining,sum(e_1.increment) from employee e inner join employee e_1 on e.name=e_1.name where e.joining>=e_1.joining group by e.name,e.joining

表は以下のようなもので、同じアプローチを使用できます

于 2016-04-24T12:43:15.507 に答える