0

各 emp_num(person) の最高日と相関する給与額のみを表示する方法が必要です。

select

lge.emp_num,
lge.emp_lname,
lge.emp_fname,
lgs.sal_from,
lgs.sal_amount

from lgemployee lge
join lgsalary_history lgs
on lge.emp_num = lgs.emp_num
where lge.dept_num in ('300')
group by lge.emp_num, lge.emp_lname, lge.emp_fname, lgs.sal_from, lgs.sal_amount
order by lgs.sal_amount desc

ここに画像の説明を入力

写真でわかるように、何人かの人々は、複数の支払い日がある場所に複数回現れます。どんな助けでも大歓迎です。前もって感謝します。

4

1 に答える 1

2

これを試してください:

select
    lge.emp_num, lge.emp_lname, lge.emp_fname,
    lgs1.sal_from, lgs1.sal_amount
from (
    select emp_num, max(sal_from) maxDate from lgsalary_history
    group by emp_num
) lgs2
join lgsalary_history lgs1
on lgs1.emp_num = lgs2.emp_num and lgs1.sal_from = lgs2.maxDate
join lgemployee lge
on lgs1.emp_num = lge.emp_num
where lge.dept_num in ('300')
order by lgs1.sal_amount desc
于 2013-10-31T01:39:49.510 に答える