Seleccionar ultimas fechas para un mismo individuo

Tengo una tabla con trabajador, mes, total días trabajados. Necesito poder sacar en una consulta los últimos 6 meses que cada trabajador acudió 20 o mas días al trabajo en los últimos 2 años (lógicamente no coinciden los mismos meses para todos los trabajadores), si al menos me dieses una orientación estaría muy agradecido.

1 respuesta

Respuesta
1

He pasado la tarde de ayer dándole vueltas y esto es lo mejor que he conseguido:

Hacer una consulta que te pregunte el nombre del trabajador, y una vez introducido, te muestre los datos que pides (últimos 6 meses que trabajó 20 das o más en los últimos dos años)

Pero para que funcione, se necesitan estas premisas:

1º/ Tu campo Mes tiene que tener este formato (o similar) de datos: 2013-09, 2013-08... pues para que la consulta coja los últimos 6 meses ésta tiene que estar ordenada por el campo mes de forma decreciente.

Si en tu campo mes tienes sólo los nombres de los meses, sólo el número de mes, o no tienes el año en primer lugar, no se te ordenarán bien los registros y no obtendrás el resultado esperado.

2º/ Es necesario que exista un campo para el año, bien directamente o creado en la consulta a partir del campo mes, para poder filtrar los dos últimos.

Esta es la SQL de la consulta:

SELECT TOP 6 Tabla1.Nombre, Tabla1.Mes, Tabla1.[total días trabajados], Left$([Mes],4) AS Año
FROM Tabla1
WHERE (((Tabla1.Nombre)=[Introduce el nombre del trabajador]) AND ((Tabla1.[total días trabajados])>=20) AND ((Left$([Mes],4))>Year(Date())-2))
ORDER BY Tabla1.Mes DESC;

Para aplicarla a tu bd, crea una consulta nueva, vete a vista SQL y cópiala, cambiando Tabla1 por el nombre de tu tabla, y si es necesario, también los nombres de los campos.

Te adjunto una mini-bd de ejemplo: http://filebig.net/files/5HBChad3sg

Disculpa que haya tardado tanto en contestarte, muchas gracias por todo, me ha sido de gran utilidad tu propuesta y de hecho la estoy usando.

Mil gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas