Foro de elhacker.net

Programación => Bases de Datos => Mensaje iniciado por: xlasekx en 26 Junio 2019, 05:41 am



Título: ordenar por fecha mas antigua
Publicado por: xlasekx en 26 Junio 2019, 05:41 am
Buenas noches
Tengo el siguiente problema...tengo una base  de datos en oracle y una tabla con estos datos

N_folio              fecha          cod
      
1789090   25/06/2019 09:00   0
1789090   25/06/2019 09:30   0
1789090   25/06/2019 10:00   1
1789092   25/06/2019 08:00   0
1789092   25/06/2019 09:15   0
1789092   25/06/2019 10:30   1

por pantalla se muestra la ultima del folio que tiene codigo 1 o sea
1789090   25/06/2019 10:00   1
1789092   25/06/2019 10:30   1

y se ordena por la fecha que se esta mostrando en pantalla, lo que necesito es que se siga mostrando tal como esta pero que se ordene  primera fecha de ingreso que para elfolio 1789090 seria  esta fecha y hora 25/06/2019 09:00..si se aplicara lo que quiero tendria que quedar asi ordenada, ya que la primera fecha del folio 1789092 es mas antigua que la otra

1789092   25/06/2019 10:30   1
1789090   25/06/2019 10:00   1



Título: Re: ordenar por fecha mas antigua
Publicado por: Carloswaldo en 26 Junio 2019, 06:02 am
Se me ocurrió esto en PostgreSQL, supongo que también funcionará en Oracle:

Código
  1. SELECT prueba.*
  2. FROM prueba
  3. INNER JOIN (SELECT n, MIN(fecha) fecha FROM prueba GROUP BY n) temp ON prueba.n = temp.n
  4. WHERE prueba.cod = 1
  5. ORDER BY temp.fecha;


Título: Re: ordenar por fecha mas antigua
Publicado por: crisoof en 1 Agosto 2019, 19:49 pm
Amigo en realidad filtrando por el codigo 1 ya las tienes ordenadas, ahora si tuvieras mas filas con el codigo 1 la ordenacion seria algo asi

Código:


Select N_folio, Fecha, Cod
From Tabla t
Where Fecha = (Select Min(Fecha)
                        From Tabla T2
                        where t.N_folio = t2.N_folio
                         And Cod = 1)
and Cod = 1

Saludos