FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
mostrar SOLO cliente de los que tengo un sólo registro
Hola,
Estoy trabajando con delphi6 e interbase 7. Tengo que motar un informe (report), y para ello me he creado o lo estoy intentando, un procedimiento que me filtra los cliente por una serie de datos de modo que al final, me muestra todos los registros correspondientes a cada uno de los clientes que cumplen mi condición. Hasta aquí todo bien. El tema es que ahora lo que necesito hacer es que de ese listado que he obtenido, si un cliente tiene más de un registro, entonces NO me muestre los registros de ese alumno y si tiene SÓLO un registro me lo muestre en el listado. Alguna idea????? Por favor, ayuda, Muchas gracias de antemano, y por todo Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
#3
|
|||
|
|||
Hola Cadetill,
por desgracia, no es tan fácil, pues efectivamente utilizo el distint, pero los registros no son totalmente iguales, tienen campos algo distintos. Esto es lo que tengo dentro del bloque del procedimiento:
Muchas gracias, Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
#4
|
||||
|
||||
Hola.
Esto te va a listar los registros no repetidos por el campo nombre. select nombre from Tabla EXT where (select count(*) from Tabla INT where INT.nombre = EXT.nombre) = 1 Si esto no es lo que quieres, tendrás que explicarte mejor. Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#5
|
|||
|
|||
Cita:
Muchas gracias, Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
#6
|
||||
|
||||
Hola.
Los problemas de velocidad en una consulta, practicamente siempre se solucionan creando un/varios índice/s adecuado/s. Cuando tienes una subconsulta (como este caso), tienes que prestar especial atención a crear un índice para optimizar esa subconsulta (puesto que se va a lanzar la subconsulta, una vez para cada registro de la consulta principal). Así para una consulta tipo, la comentada : select nombre from Tabla EXT where (select count(*) from Tabla INT where INT.nombre = EXT.nombre) = 1 Solo creando un índice para el campo nombre, vas a aumentar espectacularmente su tiempo de ejecución. NOTA : Este caso es muy simple, en muchos casos vas a necesitar un índice múltiple para optimizar adecuadamente una consulta. Es decir para optimizar una consulta del tipo select .... where Campo1 = X and Campo2 = Y, debes crear un índice compuesto, con los campos Campo1 y Campo2. Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
#7
|
||||
|
||||
Cita:
Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no). |
|
|
|