aparentemente no funciona distrinct aplicado a cursor

53 views
Skip to first unread message

Marcelo Lopez

unread,
Mar 9, 2024, 9:04:47 AM3/9/24
to publicesvfoxpro
Hola a todos 

Tengo un cursor de 5 registros con aproximadamente 25 campos  , de estos 5 registros 2 son iguales ( tienen el mismo valor en cada campo , ya sea que tengan datos o esten vacios , lo revise varia veces )
Estoy haciendo esto sobre el cursor para eliminar el reg que esta duplicado :

select distinct * from cursorconDuplicado into cursor cursinDupli 

Y no logro que se elimine el reg duplicado .
Pregunto : puede ser que algun campo vacio no lo considere igual ? ( que se vea vacio en pantalla , pero en realidad tenga espacios o algo por el estilo?.
 Hay alguna otra manera de eliminar el reg duplicado  que no sea usando distinct ? gracias 




Luis Robles

unread,
Mar 9, 2024, 9:38:31 AM3/9/24
to publice...@googlegroups.com
Buen dia amigo, la sentencia SELECT DISTINCT funciona más eficientemente cuando indicas los campos, cuando usas *, la sentencia no determina cual es la distinción
Te paso un ejemplo de una hecha por mi, en mi caso no requiero todos los campos, solo 3 campos de la tabla ya que estoy armando un combo box para un generar un reporte y me funciona excelente.
SELECT DISTINCT opertcali.alidoc AS 'Relación #',opertcali.emision AS 'Emisión',opertcali.creadopor AS 'Procesado por' FROM opertcali
Adjunto capture - Esta tabla tiene 15 registros donde el campo "ALIDOC", que guarda la numeración asignada a la relacion, siempre es 1, al ejecutar la sentencia solo me muestra 1 solo registro
Consulta de la tabla con todos los registros
image.png
Consulta de la tabla con SELECT DISTINCT
image.png
Como puedes observar en la consulta se arma mostrando 1 solo campo de 15 que es lo que necesito, cada relacion puede tener N registros, la distinción es el campo alidoc, que es el que coloco de primero en la lista de campos a tomar para la consulta
te sugiero pruebes con los 25 campos, y no usando *
Espero haberte podido ayudar. 

Libre de virus.www.avast.com

--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/CAKGbfCa5q95SVDkEbWpkMtW9Q5oHHp7O4n0VoPN%2BhSYJkpUQLw%40mail.gmail.com.

Zarlu

unread,
Mar 9, 2024, 9:46:59 AM3/9/24
to Comunidad de Visual Foxpro en Español
Buenos días Marcelo!

Pues debería funcionar...

CREATE CURSOR duplis (a i,b i,c i)
INSERT INTO duplis VALUES (1,2,3)
INSERT INTO duplis VALUES (1,2,3)
INSERT INTO duplis VALUES (3,2,1)
INSERT INTO duplis VALUES (4,2,3)
GO top
Browse
SELECT * Distinct FROM duplis Into Cursor noduplis
Select noduplis
Browse

Asegurate de seleccionar y abrir el cursor resultante

Suerte
zarlu
Chetumal, Quintana Roo, México
Reply all
Reply to author
Forward
0 new messages