Ramplas a mantención por fecha
Ahora te haré una nueva consulta que no me han podido responder.
Mira, necesito una consulta que devuelva las patentes de las ramplas que necesiten realizar un cambio de mazas en las ruedas. Para esto se realiza una vez al año, por ende, se compara la última fecha registrada en el check (Fecha_Check) con la fecha actual y si son igual o mayor a 365 días devolverá la patente para que vaya a mantención. Esta patente debe ser única, es decir, no se debe repetir la misma patente. Ademas se considerará además de la fecha registrada, la casilla registrada donde se le realizó el cambio de maza, pero sólo basta tomar la última fecha del check y verificar si está marcado la casilla (con -1). El código que tengo es este:
SELECT Check_Ramplas.Placa_Rampla, Last(Check_Ramplas.Fecha_Check) AS ÚltimoDeFecha_Check, Last(Check_Ramplas.Nombre_Conductor) AS ÚltimoDeNombre_Conductor
FROM Check_Ramplas
GROUP BY Check_Ramplas.Placa_Rampla, Check_Ramplas.Cambio_Mazas
HAVING (((Check_Ramplas.Cambio_Mazas)=-1) AND ((Abs(DateDiff("d",DMin("fecha_actual","Check_Ramplas","Placa_Rampla='" & [Placa_Rampla] & "'"),DMax("Fecha_Check","Check_Ramplas","Placa_Rampla='" & [Placa_Rampla] & "'")))+1)>=365));
El problema con este código es que con el "last" en las fechas me devuelve sólo una patente, a pesar que hayan 2 patentes distintas pero con la misma fecha y casilla marcada en las mazas. Ahora sin el "Last" en las fechas me aparece la misma patente y repetida con otras fechas, pero tampoco me sale la segunda patente y no sé por qué.
¿Qué hago?
Mira, necesito una consulta que devuelva las patentes de las ramplas que necesiten realizar un cambio de mazas en las ruedas. Para esto se realiza una vez al año, por ende, se compara la última fecha registrada en el check (Fecha_Check) con la fecha actual y si son igual o mayor a 365 días devolverá la patente para que vaya a mantención. Esta patente debe ser única, es decir, no se debe repetir la misma patente. Ademas se considerará además de la fecha registrada, la casilla registrada donde se le realizó el cambio de maza, pero sólo basta tomar la última fecha del check y verificar si está marcado la casilla (con -1). El código que tengo es este:
SELECT Check_Ramplas.Placa_Rampla, Last(Check_Ramplas.Fecha_Check) AS ÚltimoDeFecha_Check, Last(Check_Ramplas.Nombre_Conductor) AS ÚltimoDeNombre_Conductor
FROM Check_Ramplas
GROUP BY Check_Ramplas.Placa_Rampla, Check_Ramplas.Cambio_Mazas
HAVING (((Check_Ramplas.Cambio_Mazas)=-1) AND ((Abs(DateDiff("d",DMin("fecha_actual","Check_Ramplas","Placa_Rampla='" & [Placa_Rampla] & "'"),DMax("Fecha_Check","Check_Ramplas","Placa_Rampla='" & [Placa_Rampla] & "'")))+1)>=365));
El problema con este código es que con el "last" en las fechas me devuelve sólo una patente, a pesar que hayan 2 patentes distintas pero con la misma fecha y casilla marcada en las mazas. Ahora sin el "Last" en las fechas me aparece la misma patente y repetida con otras fechas, pero tampoco me sale la segunda patente y no sé por qué.
¿Qué hago?
1 respuesta
Respuesta de juanclaverie
1