es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

sobre la matriz en la condición.

Tabla1:
https://i.stack.imgur.com/XVyYf.png

Tabla2:

View post on imgur.com

Espera el resultado:
https://i.stack.imgur.com/lNssy.png

Si hay muchos datos en la matriz [R80, R01, R02, R03, R04, R05…] y ‘Tabla2’,
quiero encontrar los datos de ‘Tabla2’ en la matriz.
El resultado debe ser ‘fecha’ es nuevo (DESC)/límite 1

Ejemplo:

como select * from tabla2 where ID = 'R80' DESC Date Limit1

Pero quiero obtener todos los elementos [R80, R01, R02, R03, R04, R05...]

como select * from tabla2 where in [R80, R01, R02, R03, R04, R05...] DESC Date Limit1??

Por favor ayuda, gracias

No utilizar “loop,declare,@” es mejor

Por favor no responder
select * from tabla2 where ID = 'R80'...;
select * from tabla2 where ID = 'R01'...;
select * from tabla2 where ID = 'R02'...;
...

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para obtener el resultado deseado sin utilizar bucles ni declarar variables, puedes utilizar una subconsulta con una cláusula WHERE IN y una cláusula GROUP BY para obtener la última fecha para cada ID en la lista. Luego, puedes unir esta subconsulta con Table2 para obtener las filas completas de datos correspondientes a la última fecha para cada ID. Finalmente, puedes ordenar el resultado por ID y Date en orden descendente para que coincida con el resultado esperado.

    Aquí está la consulta:

    SELECT t2.* 
    FROM Table2 t2 
    JOIN (
      SELECT ID, MAX(Date) AS MaxDate 
      FROM Table2 
      WHERE ID IN ('R80', 'R01', 'R02', 'R03', 'R04', 'R05') 
      GROUP BY ID
    ) t1 ON t1.ID = t2.ID AND t1.MaxDate = t2.Date 
    ORDER BY t2.ID, t2.Date DESC;
    

    Esta consulta primero selecciona la columna ID y la fecha máxima (Date) para cada ID en la lista de IDs utilizando la subconsulta. Luego, la consulta principal une el resultado de esta subconsulta con Table2 en las columnas ID y Date para recuperar las filas completas de datos correspondientes a la última fecha para cada ID. Finalmente, el resultado se ordena por ID y Date en orden descendente para coincidir con el resultado esperado.

Comments are closed.