簡體   English   中英

選擇子查詢中的最大日期

[英]SELECT where max date in subquery

我已經從MySQL (Test DB)安裝了TestDB,並且想進行一些基本查詢。 其中之一是:給我每位員工以他們的薪水。 薪水表包含該員工曾經有過的每個薪水的清單,包括截止日期和截止日期。 我只想要新員工的薪水,所以“ from_date”最高的人。 我已經成功地Join了2個表在一起,我已經成功地給我回了最高的薪水與他們的員工數量eache員工。 但是我不能把他們聚在一起。 我在網上什么都沒找到。 Maby我只是不知道要搜索什么。

無論如何,這就是我想出的:

為每個emp_no選擇最高薪水:

select emp_no, max(from_date) from salaries group by emp_no

選擇每位員工的最高薪水,然后將其與其他數據一起加入(此工作無效):

select * from employees e
LEFT JOIN salaries s
ON e.emp_no = s.emp_no
where s.from_date=(select max(from_date) from salaries group by emp_no);

這是EER:

EER

如果您想要每個雇員的最新薪水,則將salaries表加入子查詢:

SELECT e.*, s1.*
FROM employees e
LEFT JOIN salaries s1
    ON e.emp_no = s1.emp_no
INNER JOIN
(
    SELECT emp_no, MAX(from_date) AS max_from_date
    FROM salaries
    GROUP BY emp_no
) s2
    ON s1.emp_no    = s2.emp_no AND
       s1.from_date = s2.max_from_date;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM