PDA

Ver la Versión Completa : Ayuda consulta


sargento elias
11-03-2009, 15:55:24
Hola buenas Tardes...Necesito ayuda en una consulta....os cuento tengo una consulta....


Código SQL [-] (http://www.clubdelphi.com/foros/#)Select incidencias.ref_num,.......................................FROM incidencias
INNER JOIN incidencias_det ON incidencias.ref_num = incidencias_det.ref_num
WHERE incidencias.activa = 1 and
incidencias.grupo not in ('Desarrollo.nao','CAU MN CENTRO DE CONVIVENCIA','SEGUIMIENTO DESARROLLO CAM','ALNOVA CAU 2')




Me han pedido que le añada dos campos mas ,descripcion y ultima_fecha.
a esa consulta.
Para ello he de mirar en la tabla VIDA_inc (id,ref_num,descripcion,fecha) enlazada con la de incidencias por ref_num.

En esta tabla tengo el histórico de incidencias

num_ref fecha descripcion
1 01/01/2009 From Resuelta to Registrada
1 04/05/2008 From Resuelta to Registrada
2 01/02/2009 From resuelta to Registrada

Necesito meter en un campo la Ultima fecha en la que se ha reaperturado es decir que cumpla las tres condiciones del where.(algo asi)(las que no lo cumplan vacio.


Código SQL [-] (http://www.clubdelphi.com/foros/#)Select max(vida_inc.fecha),vida_inc.ref_num
from vida_inc inner join incidencias
on incidencias.ref_num = vida_inc.ref_num
where vida_inc.descripcion like '%From ''Resuelta%'
or vida_inc.descripcion like '%From ''ALNOVA.RECHAZADA OK%' or vida_inc.descripcion like '%From ''ALNOVA.PRUEBA ERROR%'
group by vida_inc.ref_num,vida_inc.id





y en otro campo meter las descripciones, (la que esta en el registro de cada última fecha).Pero ademas necesito que en ese campo nuevo se introduzca una palabra por cada uno de los casos del where anterior. es decir 'RESUELTA','RECHAZADA','ERROR'.....

Siento no ser parco en palabras, y muchas gracias.....

ContraVeneno
11-03-2009, 16:30:36
No entendí muy bien, pero creo que necesitas agregar la otra tabla igual como haces con la segunda. Y para el dato condicional, utilizarías un "case when"

Select I.Ref_Num, IDet.Ref_Num, IV.Ref_Num,
Case when IV.Descripcion like '%Error%' then 'Error'
when IV.Descripcion like '%Rechazo%' then 'Rechazo' end Tipo,
...
From Incidencias I
join Incidencias_Det IDet on I.Ref_Num = IDet.Ref_Num
join VIDA_Inc IV on I.Ref_Num = IV.ref_Num
Where....

sargento elias
11-03-2009, 16:48:49
Gracias,Pero ese no es el problema,mas fácil.Necesito hacer un update a un nuevo campo que me he creado en la tabla incidencias,fecha_reaper. vale ahora necesito sacar de la tabla vida_inc (relacionada con incidencias por ref_num) todas las últimas fechas (más actuales) de todos los registros que cumplan esa condicion where vida_inc.descripcion like '%From ''Resuelta%'
--or vida_inc.descripcion like '%From ''ALNOVA.RECHAZADA OK%' or vida_inc.descripcion like '%From ''ALNOVA.PRUEBA ERROR%'

imagina que sale esto

ref_num fecha
4 1/1/2008
6 2/3/2009
13 4/5/2010
Necesitaria buscar en incidencias ese numero de registro e introducir la fecha en el campo nuevo creado.

Puedo montar todo en la misma Query???? Es decir que me busque en Vida_inc las ultimas fechas y que luego me las meta en el campo nuevo.