Ver Mensaje Individual
  #9  
Antiguo 02-07-2007
jplj jplj is offline
Miembro
 
Registrado: oct 2003
Posts: 189
Reputación: 21
jplj Va por buen camino
Hola:

Comentaros que con AND no se obtienen resultados y con OR se obtienen todos aquellos que tengan al menos uno de los idiomas, aunque para cada uno de ellos se obtiene un "registro".
Código Delphi [-]
Aplicando OR se obtiene:

12436576   MARTINEZ    MENDOZA   JAVIER   frances
12436576   MARTINEZ    MENDOZA   JAVIER   ingles
12436576   MARTINEZ    MENDOZA   JAVIER   arabe
23455454   LOPEZ         ALEGRIA     JUAN      ingles
78957559   DURAN         ......          ......      arabe
84878877   JIMENEZ      OLMEDO     MANUEL  frances
84878877   JIMENEZ      OLMEDO     MANUEL  ingles
84878877   JIMENEZ      OLMEDO     MANUEL  arabe

Partiendo de esta consulta que he llamado "busqueda" he creado con el asistente de Access otra que busque los duplicados.

Código SQL [-]
SELECT First([maestro].[dni]) AS maestro_dniCampo, Count([maestro].[dni]) AS NúmeroDeDuplicados
FROM busqueda
GROUP BY [busqueda].maestro.dni
HAVING (((Count([maestro].[dni]))>2));

Con esta obtenemos los duplicados y modificandola para que sólo devuelva el dni puedo obtener el listado.

Código SQL [-]
SELECT * FROM maestro
WHERE dni IN(SELECT First([maestro].[dni]) AS maestro_dniCampo FROM busqueda
GROUP BY [busqueda].personal.dni
HAVING (((Count([maestro].[dni]))>2)));

El problema ahora lo encuentro para sustituir en la última sentencia SQL busqueda por la sentencia que ha generado la primera consulta.

Por último explicar que la sentencia pretendo generarla dinámicamente en función de los criterios seleccionado por el usuario.

Un Saludo.
__________________
Sonríe. Mañana puede ser peor.
Responder Con Cita