Ver Mensaje Individual
  #10  
Antiguo 22-10-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Realmente no importa si es paradox, interbase, mysql o cualquier otro. Entra al Database Desktop y haz las consultas ahí y verás que te da los mismos resultados que has visto.

El problema aquí está en una incorrecta interpretación de lo que significa este tipo de consultas.

DISTINCT le dice al servidor:

De los registros que encuentres traeme sólo una copia de aquellos que estén repetidos.

Pero para que dos regitros se consideren repetidos deben coincidir todos sus campos (los incluídos en la consulta)

Suponte que tu tabla es algo así:

Código:
id | nombre | referencia
1  | peter  |       84
2  | paul   |       35
3  | mary   |       84
Si tu consulta es

select distinct * from tabla

los registros que encuentra son

(1, peter, 84)
(2, paul, 35)
(3, mary, 84)

Como no hay ninguno repetido te rgresa todos.

Si la consulta es

select distinct referencia from tabla

los registros encontrados son

(84)
(35)
(84)

(Así, sin más campos)

Como el primero y el tercero se repiten entonces sólo te regresa

(84)
(35)

Parece que tu quisieras que te regresara todos los campos pero sólo uno con referencia=84. Sin embarg hay dos:

(1, peter, 84)
(3, mary, 84)

¿Cómo podría el servidor saber cuál de estos dos regresar?

De cualquier forma, quizá no estemos entendiendo del todo cuál es tu propósito. Si nos ejemplificas con unos registros en concreto (tal como los de arriba, ¡sin los 15 campos!) sabremos con más detalle lo que deseas. Indica también, usando dichos ejemplos, los resultados que esperarías.

// Saludos

Última edición por roman fecha: 22-10-2003 a las 22:51:25.
Responder Con Cita