SQL查询获取最后一个值

时间:2017-03-29 10:17:06

标签: mysql sql

我希望最后一次(按日期)显示(Empleado),其中值“Entrar”为1 enter image description here

SELECT '20498090R'
FROM fichajes
WHERE fecha IN (SELECT MAX(fecha) FROM fichajes)
  AND entrada = '1'

但这给了我las reg寄存器,其中entrada ='1'我只想返回信息,如果最后一个条目是1,而不是las条目,其中entrada ='1'

在这种情况下,我的最后一个寄存器entrada =“0”所以我不需要任何信息 有什么问题?

3 个答案:

答案 0 :(得分:0)

使用子查询来识别给定员工的最新记录,只需检查entrada的值。

SELECT CASE WHEN entrada = '1' THEN 'Yes' ELSE 'No' END AS result
FROM fichejes
WHERE Fecha = (SELECT MAX(Fecha) FROM fichejes WHERE empleado = '20498090R')

答案 1 :(得分:0)

选择员工'20498090R'的最新记录(LIMIT)。然后,仅在entrada = 1

时选择此记录
select *
from fichejes
where (empleado, fecha) in
(
  select empleado, fecha
  from fichejes
  where empleado = '20498090R'
  order by fecha desc
  limit 1
)
and entrada = 1;

答案 2 :(得分:0)

以下代码适用于特定员工(在本例中为“20498090R”)的最新Fecha值,如果该员工的entrada值为1。

SELECT maxFecha
FROM
(
    SELECT MAX( fecha ) AS maxFecha,
           entrada AS entrada
    FROM fichajes
    WHERE empleado = '20498090R'
) withEntrada
WHERE entrada = 1;

以下代码适用于每个员工的最新Fecha值,其值为entrada等于1。

SELECT empleado,
       maxFecha
FROM
(
    SELECT empleado AS empleado,
           MAX( fecha ) AS maxFecha,
           entrada AS entrada
    FROM fichajes
    GROUP BY empleado
) withEntrada
WHERE entrada = 1;

如果您有任何问题或意见,请随时发表评论。