Stack Overflow en español Asked by ADQA on February 25, 2021
No sé cómo hacer la siguiente consulta, a ver si me podéis ayudar. Tengo la siguiente tabla, en la que hay 2 productos diferentes, insertados en diferentes fechas y horas, y con cantidades diferentes:
Y quiero que me devuelva de cada producto el registro con fecha y hora más reciente, pero que no se repita el producto. Así:
Cómo lo hago? Gracias de antemano!
A mí me funciono así
SELECT *
FROM BSA_TAB_CERTIFICADO_PACIENTE T1
WHERE
(T1.FECHA_EMITE_CERTIFICADO =
(SELECT MAX(FECHA_EMITE_CERTIFICADO)
FROM BSA_TAB_CERTIFICADO_PACIENTE
WHERE NUMERO_HISTORIA = :P27_HISTORIA
)
);
Answered by Luis on February 25, 2021
Suponiendo (ya que no está la información en la pregunta) que la tabla se llama Tabla
, una posible solución es:
select *
from Tabla as T1
where not exists (
select *
from Tabla as T2
where T1.Producto = T2.Producto and T1.Fecha < T2.Fecha)
Answered by Marcos Crispino on February 25, 2021
Esta primera consulta te daría la fecha mayor de cada producto:
SELECT Producto,
max(Fecha) max_fecha
FROM Tabla
GROUP BY Producto
Obteniendo esto, puedes volver a consultar la tabla Tabla para sacar el resto de información que necesites. Te pongo la sentencia completa:
SELECT *
FROM Tabla t
LEFT JOIN (SELECT Producto,
max(Fecha) max_fecha
FROM Tabla
GROUP BY Producto) maximo on maximo.producto=t.Producto and
maximo.max_fecha=t.Fecha;
Un saludo
Answered by David Isla on February 25, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP