我希望最后一次(按日期)显示(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”所以我不需要任何信息 有什么问题?
答案 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;
如果您有任何问题或意见,请随时发表评论。