Hola buenas estoy haciendo una consulta en Oracle 9, pero no consigo obtener los resultados que estoy buscando:
Tenemos dos tablas: Cliente, ImagenesContrato relacionadas por el campo:idContrato.
La tabla Imagenes contrato contiene los movimientos realizados en un contrato desde su creacion.Yo tendria que coger la ultima fecha de actualizacion del contrato (un cliente puede tener mas de un contrato).
En resumen necesito obtener los clientes cuyo ultimo valor de sus contratos no sea 1000.
Esta es la query que estoy empleando:
select idcliente
from Cliente
where cli_idContrato not in (select distinct(idContrato) from imagenesContrato where imc_importe=1000 and (idContrato, fechaActualizacion)=
(select max(fechaActualización) from imagenesContrato group by idContrato)
El problema: Es que me esta sacando clientes con contratos cuyo importe es 1000, por ejemplo:
Cliente A tiene 5 registros en la tabla imagenesContrato:
imc_idContrato - imc_importe - imc_fechaActualizacion
1 0 20-02-2009
1 12 20-07-2009
1 0 20-10-2009
1 1000 20-12-2009
En el ejemplo arriba expuesto, no deberia de incluir ese idContrato, ya que el ultimo importe es 1000, sin embargo si que lo esta incluyendo, y ese es mi gran problema, a pesar de estar cogiendo la ultima fecha por contrato lo esta incluyendo.
Alguna ayuda por favor??