Oracle - SQL Avanzada

 
Vista:

SQL Avanzada

Publicado por xaji (1 intervención) el 30/11/2011 12:48:16
Tengo la siguiente tabla, con los siguientes datos:

Tabla: Unidades

Cod. unidad-FDesde- FHasta - Tipo Unidad
Map1- 11/03/2002 - 11/03/2002 - 9
Map1 - 12/03/2002 - 23/06/2002 - 1
Map1 - 24/06/2002 - 06/08/2002 - 9
Map1 - 07/08/2002 - 09/09/2002 - 9
Map1 - 10/09/2002 - 18/09/2002 - 9

Lo que quiero es obtener la fdesde minima y la fhasta maxima de cada
tipo unidad y cada vez que hay un cambio en un tipo de unidad en cada fila.

Los datos que debería mostrar la SQL, son estos:

Cod. unidad- FDesde- FHasta- Tipo Unidad
Map1- 11/03/2002- 11/03/2002- 9
Map1- 12/03/2002- 23/06/2002- 1
Map1- 07/08/2002- 18/09/2002- 9

La sentencia SQL que yo he escrito es esta:

select max(codunidad), min(fdesde), max(fhasta), tipoUnidad from unidades
where codunidad like 'Map1'
group by tipoUnidad

pero muestar los datos erróneamente, como podría modificar la consulta, para que me muestre los datos como los de encima. Saludos y muchas gracias de antemano..
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

SQL Avanzada

Publicado por Julio García (2 intervenciones) el 26/12/2011 23:30:18
Hola,aquí te dejo una posible forma de resolver tu problema:

select (select min(fecha_desde)
from unidades u2
where u2.tipounidad = u1.tipounidad) fecha_minima,
(select max(fecha_hasta)
from unidades u3
where u3.tipounidad = u1.tipounidad) fecha_maxima,
from unidades u1
where codunidad like 'Map1'
group by tipoUnidad


Espero que te sea de utilidad si no lo has resuelto.
Un Saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar