UTNianos

Versión completa: [DUDA][SQL] Ayuda para hacer una query
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Buenas gente, como andan? recurro a ustedes para que me ayuden con una query que no me sale.

Tengo una tabla que se llama 'envios' y otra 'envios_novedades' yo quiero traerme de cada envío la primera novedad.

Es decir:
Tabla 'envios':
ID
1
2
3
4

Tabla 'envios_novedades'
ID_ENVIO | FECHA
1 | '03-02-2017'
1 | '05-02-2017'
3 | '06-02-2017'

Al hacer el select con el left join quiero que me quede
ID | FECHA
1 | '03-02-2017'
2 | null
3 | '06-02-2017'
4 | null

se me está planteando la dificultad en ir a buscar el la fecha mínima en el left join.

Gracias de antemano y saludos!
Creo que haciendo lo siguiente es suficiente:


SELECT E.ID, MIN(FECHA) PrimerNovedad FROM ENVIOS E
LEFT JOIN ENVIOS_NOVEDADES EN
ON E.ID = EN.ID_ENVIO
GROUP BY E.ID



Fijate si funciona.
select a.id, b.fecha
from envios a
left join envios_novedades b
on a.id = b.id_envio
and b.fecha = (select min(fecha) from envios_novedades c where c.id_envio=a.id)
order by a.id
La respuesta correcta era la anterior. En esta lo que está mal es cuando haces: wherec.id_envio=a.id
porque la tabla a viene desde otro from, no podes compararla ahí.

Gracias a ambos!

(06-02-2017 17:26)rod77 escribió: [ -> ]select a.id, b.fecha
from envios a
left join envios_novedades b
on a.id = b.id_envio
and b.fecha = (select min(fecha) from envios_novedades c where c.id_envio=a.id)
order by a.id
Excelente.
Cualquier otra duda consultanos!.
URLs de referencia