首页 > 解决方案 > 从sql中的表中获取最后输入的id

问题描述

在此处输入图像描述我有一个员工表。在该表中,我有 n 笔贷款。现在我想选择所有具有他最后一次贷款价值和日期的员工。任何人都可以帮我解决这个问题。

这是我到目前为止所做的:

SELECT employee_id,employee_name,department_name, 
       designation_name,PF_type,PF_number,Opening_balance,
       MAX(Loan_id),MAX(loan_date), MAX(loan_amount)  
FROM single_roww1
GROUP BY employee_id

我为此尝试了 group by、limit 和 order by,但没有用...我还尝试了最后一次出现的employee_id 也没有工作..

标签: mysqlsqlgreatest-n-per-group

解决方案


最后一次贷款价值和日期

你似乎想要:

SELECT sr.*
FROM single_roww1 sr
WHERE sr.loan_date = (SELECT MAX(sr2.load_date)
                      FROM single_roww1 sr2
                      WHERE sr2.employee_id = sr.employee_id
                     );

这假设 shatloan_date在数据库中具有正确的日期/时间类型(尽管图像中的数据看起来像什么)。

出于性能考虑,您需要在(employee_id, load_date).

请注意,如果员工在同一日期有多个贷款,这将检索最后一个。


推荐阅读