Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Omitir filas con valores repetidos

Estas en el tema de Omitir filas con valores repetidos en el foro de SQL Server en Foros del Web. Hola que tal, Tengo un select con 3 campos y quiero omitir las filas que tengan valores repetidos en una columna, ejemplo: Tabla: Users ID ...
  #1 (permalink)  
Antiguo 21/08/2012, 13:17
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 10 meses
Puntos: 1
Omitir filas con valores repetidos

Hola que tal,

Tengo un select con 3 campos y quiero omitir las filas que tengan valores repetidos en una columna, ejemplo:

Tabla: Users
ID USER ACTIVO
1 User1 No
2 User1 Si
3 User2 Si

Quiero que el select no me tome en cuenta el ID1, ya que está repetido el USER y Activo esta no, el select está así:

Select * from Users

Sólo quiero que omita el valor repetido en la columna USER y que en ACTIVO diga No.

¿Cómo se pondría la condición? Gracias de antemano

Saludos.
  #2 (permalink)  
Antiguo 21/08/2012, 14:12
 
Fecha de Ingreso: enero-2012
Ubicación: Caracas
Mensajes: 75
Antigüedad: 12 años, 2 meses
Puntos: 21
Respuesta: Omitir filas con valores repetidos

bueno en SQL no estoy seguro, y no tengo una db en SQLSrver por aqui pero puedes probar con:

Código SQL:
Ver original
  1. SELECT DISTINCT ON (USER) ID,USER,ACTIVO FROM Users


y me cuentas.
  #3 (permalink)  
Antiguo 21/08/2012, 14:17
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Omitir filas con valores repetidos

Me marca error de sintaxis en el ON, me parece que no se puede hacer eso que comentas, ¿alguna otra idea?

Saludos!
  #4 (permalink)  
Antiguo 21/08/2012, 14:31
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Omitir filas con valores repetidos

pues no se entiende muy bien, si no me equivoco, tendrias que sacar primero TODOS los UNICOS, con su estado en NO

SELECT DISTINCT t1.USER FROM Users t1 WHERE t1.ACTIVO = 'NO'
UNION
SELECT DISTINCT t2.USER FROM Users t2 WHERE t2.ACTIVO = 'SI' AND NOT EXISTS(SELECT DISTINCT USER FROM Users t3 WHERE t3.USER = t2.USER AND USERACTIVO = 'NO')

Dime si es lo que deseas
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 21/08/2012, 14:44
 
Fecha de Ingreso: junio-2009
Mensajes: 250
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Omitir filas con valores repetidos

Ya lo resolví, hice algo parecido al tuyo sólo que use un NOT IN en vez de un NOT EXISTS, muchas gracias!
  #6 (permalink)  
Antiguo 21/08/2012, 15:30
 
Fecha de Ingreso: marzo-2010
Ubicación: Lima
Mensajes: 31
Antigüedad: 14 años
Puntos: 2
Respuesta: Omitir filas con valores repetidos

Bueno paree que ya te dieron la solucion, pero de todos modos pongo el script

select * from dbo.usuarios
where usuario not in (select usuario from usuarios
group by usuario
having count(usuario)>1)
or activo='si'

Saludos
  #7 (permalink)  
Antiguo 22/08/2012, 09:06
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Omitir filas con valores repetidos

Pues MUY MAL HECHO si cambiaste el NOT EXISTS por el NOT IN, ya que este ultimo degradara el tiempo de respuesta.
__________________
MCTS Isaias Islas

Etiquetas: filas, omitir, repetidos, select, tabla, campos
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:12.