Foros del Web » Programando para Internet » ASP Clásico »

recoger los registros en una SQL sin duplicados

Estas en el tema de recoger los registros en una SQL sin duplicados en el foro de ASP Clásico en Foros del Web. Como se hacia para recoger los registros en una SQL sin duplicados, ¿ distinct?, no me acuerdo y no lo encuentro con la herramienta de ...
  #1 (permalink)  
Antiguo 27/12/2002, 16:49
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 22 años, 3 meses
Puntos: 1
recoger los registros en una SQL sin duplicados

Como se hacia para recoger los registros en una SQL sin duplicados, ¿ distinct?, no me acuerdo y no lo encuentro con la herramienta de busquedas.
Este alzheimer........
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
  #2 (permalink)  
Antiguo 27/12/2002, 16:54
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98

Precisamente:

SELECT DISTINCT campo1, campo2, campon FROM tabla WHERE condición

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 27/12/2002, 16:56
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
yo suelo usar GROUP BY...

SQL = "SELECT campo_con_duplicados FROM tabla GROUP BY campo_con_duplicados"
  #4 (permalink)  
Antiguo 27/12/2002, 17:19
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 22 años, 3 meses
Puntos: 1
Con la de dazuaga me funciono bien.
Sin embargo con la otra no me sirvio porque tengo que establecer un criterio, en caso contrario me devuelve todos los valores no me hace nada el distinct.

Existe alguna forma de decirle algo asi:
SELECT DISTINCT * FROM tabla WHERE condición=¿any? o ¿all?
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
  #5 (permalink)  
Antiguo 27/12/2002, 17:41
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98

Tienes razón acabo de probar y solo lo hace filtrando un campo a la vez...de lo contrario no hace el distinct
Tengo una tabla con pais_id, pais_name

SELECT DISTINCT pais_name FROM paises WHERE pais_name <> 'mexico'

Sin embargo si quiero traer pais_nombre, pais_id me devuelve todo..!

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #6 (permalink)  
Antiguo 27/12/2002, 17:50
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 2 meses
Puntos: 535
igual y no soy un experto en sentencias SQL, pero creo que te devuelve toodos los registros porque tenés, por lo menos, un campo que no se repite nunca (un ID?)

Si el resultado de la consulta es sólo buscar duplicado en determinado campo, mi método funciona y el del DISTINCT también. Pero olvidate del uso del "*". Sólo debés incluir los campos que tienen duplicados



... si es que no me equiboco
  #7 (permalink)  
Antiguo 27/12/2002, 17:57
 
Fecha de Ingreso: agosto-2002
Mensajes: 15
Antigüedad: 21 años, 8 meses
Puntos: 0
Lo que pasa es que el DISTINCT te regresa los valores diferentes y ya con que te varie un campo ya valió, por ejemplo:

paisID paisNombre
1 Mexico
2 Estados Unidos
3 El Congo
4 Mexico

si uso:
Select DISTINCT * from paises where paisNombre="Mexico"

el resultado es:

paisID paisNombre
1 Mexico
4 Mexico

dependiendo de lo que quieres filtrar tal vez puedas usar un join...




SALUDOS!!!
  #8 (permalink)  
Antiguo 27/12/2002, 19:50
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 22 años, 3 meses
Puntos: 1
Cita:
Lo que pasa es que el DISTINCT te regresa los valores diferentes y ya con que te varie un campo ya valió
Efectivamente, solo funcionaria sobre una campo cuyos valores estuvieran ordenados y no se repitieran alternos, del mismo modo si hay espacios en blanco tampoco lo contara bien.
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
  #9 (permalink)  
Antiguo 04/09/2008, 08:40
 
Fecha de Ingreso: septiembre-2008
Mensajes: 12
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: recoger los registros en una SQL sin duplicados

Cita:
Iniciado por u_goldman Ver Mensaje

Tienes razón acabo de probar y solo lo hace filtrando un campo a la vez...de lo contrario no hace el distinct
Tengo una tabla con pais_id, pais_name

SELECT DISTINCT pais_name FROM paises WHERE pais_name <> 'mexico'

Sin embargo si quiero traer pais_nombre, pais_id me devuelve todo..!

Salu2,
Lo que tienes que hacer es filtrar primero el campo que se repite y luego con esa información traes el resto.

select a.* from
(SELECT DISTINCT pais_id FROM paises WHERE pais_name <> 'mexico') x
inner join paises a on a.pais_id = x.pais_id
  #10 (permalink)  
Antiguo 04/09/2008, 08:52
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
Respuesta: recoger los registros en una SQL sin duplicados

Je je je, espero que 6 años después maestro haya dado con la solución.

Procedo a cerrar el tema, ya que no tiene caso seguir el hilo.
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 22:35.