Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Consulta... (https://www.clubdelphi.com/foros/showthread.php?t=3698)

superhopi 17-09-2003 12:50:33

Consulta...
 
Quiero hacer una consulta para mi programa en la que seleccione solo los registros que tienen en un campo no de esta forma:

---select * from faenas where finalizado = 'No'---

La finalidad es que me imprima esto en un quickreport.
Y el problema... es que me salen los registros, pero repetidos, es decir, si hay dos faenas con Finalizado a 'No' me salen 4 ...

¿Como puedo hacer que me salgan sin repeticion?

Muchas gracias de antemano.

javiermorales 17-09-2003 12:53:32

Buenos Días, utiliza la clausula DISTINCT:
Código:

select DISTINCT * from faenas where finalizado = 'No'
Espero que te sirva.

superhopi 17-09-2003 13:03:30

Lo he hecho, ya lo intente antes... y me da error,,, me da el sieguiente mensaje:
"No se puede incluir campo de tipo memo, OLE [...] cuando selecciona valores únicos"

Claro,,, tiene dos campos memo...
Tiene un campo clave que es num (que es un numero distinto para cada registro, pero como puedo hacerlo para que no me de el error?

select DISTINCT (NUM), (NOMBRE,,,,) from faenas where finalizado = 'No'

javiermorales 17-09-2003 13:16:53

Podrías hacer lo siguiente:
Código:

select * from faenas
where [campos clave] in (
  select DISTINCT [campos clave] from faenas
  where finalizado='NO')

Esto suponiendo que los campos clave (lo que diferencia cada registro) no incluye como es lógico ningún campo memo.

guillotmarc 17-09-2003 13:46:58

Hola

¿ Cual es la consulta completa ?. Puesto que a menos que tengas JOINS en la consulta, no pueden repetirse las filas.

Saludos.

javiermorales 17-09-2003 14:07:59

Por ejemplo suponiendo una tabla clientes con campos:
Código:

ident --> identificador (C.P)
nom -->  nombre
finalizado --> [SI/NO]
desc --> MEMO

la SQL sería:
Código:

select a.* from clientes a
where a.ident in (select DISTINCT b.ident from clientes b
                            where b.finalizado='NO')

Un saludo.

Aprendiz 17-09-2003 18:43:28

Hola Superhopi, te recomendaría que te mirases la guía de estilo puesto que tu título no es el más adecuado.

Con respecto al problema que planteas, si la consulta es la que es y no hay más cosas, me da la sensación que es un problema de quickreport, por la experiencia que yo tengo el quickreport suele hacer una doble pasada en la construcción de las bandas con lo cual si haces las aperturas o escrituras de los datos en la banda de QR en algún evento de la banda puede producirse este error.

Aprovecho para decir que dado esto que comento quizás, si se confirma el error, moveré el tema al foro de Impresión.

Saludos


La franja horaria es GMT +2. Ahora son las 09:30:07.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi