Ver Mensaje Individual
  #5 (permalink)  
Antiguo 16/08/2011, 11:07
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Excluir datos según equivalencia

Hola licu:

No estoy seguro si la opción del CASE que te propone Libras sea realmente lo que necesitas, ya que a mi parecer lo que quieres es FILTRAR REGISTROS, por lo tanto creo yo que sería más conveniente utilizar un NOT EXISTS, la cuestión es dar con la condición requerida...

Según yo en palabras sería más o menos así:

--> para pintar todos los documentos que sean diferentes de acta y CURP
Código:
Todos los registros de la tabla para cveDocumento diferente de 7 y 8
 (que corresponden al acta y al CURP)
--> para pintar todos los documentos que sean acta y CURP
si es que existe el doc
Código:
+ (OR) 
todos los registros con cveDocumento 7 y 8 
Y existeDoc = 'si'
--> para pintar las actas con existeDoc = no si y solo si no existe la CURP
Código:
+ (OR) 
todos los registros donde cveDocumento sea 7 y existeDoc = 'no' 
SIEMPRE Y CUANDO NO EXISTA un cveDocumento = 8 con existeDoc = 'si' 
para el mismo empleado
--> para pintar la CURP con existeDoc = no si y solo si no existe acta
Código:
+ (OR)
todos los registros donde cveDocumento sea 8 y existeDoc = 'no' 
SIEMPRE Y CUANDO NO EXISTA un cveDocumento = 7 con existeDoc = 'si' 
para el mismo empleado
Trata de traducir esto a lenguaje SQL utilizando AND y OR según sea el caso

te recuerdo que para poder utilizar dos veces la misma tabla en el FROM y en el EXISTE puedes hacer uso de ALIAS

Cita:
FROM TuTabla T1
where NOT EXISTS (Select * FROM TuTabla T2
where
T1.idPersona = T2.idPersona and ..............)
Si tienes problemas para dar con la consulta postea algo de lo que intentaste hacer para ayudarte a afinarla.

Saludos
Leo.