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

id repetido en select

Estas en el tema de id repetido en select en el foro de SQL Server en Foros del Web. tengo un problema con la siguiente consulta, me repite los id principales gracias a que las tuplas no son identicas en un campo. [codigo] select ...
  #1 (permalink)  
Antiguo 29/11/2012, 09:40
Avatar de suap  
Fecha de Ingreso: julio-2009
Ubicación: La taberna de Moe's
Mensajes: 54
Antigüedad: 15 años, 4 meses
Puntos: 4
id repetido en select

tengo un problema con la siguiente consulta, me repite los id principales gracias a que las tuplas no son identicas en un campo.

[codigo]
select a.campo1,a.campo2.b.campo3
from tabla1 a
left join tabla2 b
[/codigo]

Resultado

campo1 | campo2 | campo3 |
1 r1 r1
2 r2 r2
2 r2 r3

se repiten las claves porque el campo3 tiene datos diferentes para ese mismo id, Gracias de antemano por el interes en mi duda.
__________________
Alan Carrillo
  #2 (permalink)  
Antiguo 29/11/2012, 09:54
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 10 meses
Puntos: 89
Respuesta: id repetido en select

Y para el mismo id, ¿qué valor debería sacar tu consulta para el campo3?
  #3 (permalink)  
Antiguo 29/11/2012, 09:56
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: id repetido en select

estas mostrando el campo 3 y si este tiene informacion diferente aunque le hagas un group by, distinct etc te va a seguir duplicando registros aqui lo que te recomiendo es que veas que campos necesitas mostrar y si realmente necesitas el campo 3 :P

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #4 (permalink)  
Antiguo 29/11/2012, 10:11
Avatar de suap  
Fecha de Ingreso: julio-2009
Ubicación: La taberna de Moe's
Mensajes: 54
Antigüedad: 15 años, 4 meses
Puntos: 4
Respuesta: id repetido en select

No me funciona ni el distinct, ni un group by, ya que en sql server el distinct se aplica a toda la tupla, me repite la tupla 2 pues el campo 3 de la tercera tupla es diferente al campo3 de la segunda tupla, se que es un enredo.

lo unico es que no se repitan los datos del campo1
__________________
Alan Carrillo
  #5 (permalink)  
Antiguo 29/11/2012, 10:12
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 12 años, 4 meses
Puntos: 40
Respuesta: id repetido en select

Te falta la clausula On.
Suponemos que es a.ID=b.ID
resulta que la relación entre Tabla1 y Tabla2 es 1:N,
y por lo tanto por cada valor de la clave primaria de Tabla1 pueden haber unas filas en Tabla2.
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog
  #6 (permalink)  
Antiguo 29/11/2012, 10:27
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 10 meses
Puntos: 89
Respuesta: id repetido en select

Cita:
Iniciado por suap Ver Mensaje
No me funciona ni el distinct, ni un group by, ya que en sql server el distinct se aplica a toda la tupla, me repite la tupla 2 pues el campo 3 de la tercera tupla es diferente al campo3 de la segunda tupla, se que es un enredo.

lo unico es que no se repitan los datos del campo1
Pero si no quieres que se repitan los valores del campo1, ¿Que valor quieres que saque en caso que haya repetidos? ¿O solo quieres sacar los valores del campo1 y el resto no te interesa?
  #7 (permalink)  
Antiguo 29/11/2012, 10:31
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: id repetido en select

Código SQL:
Ver original
  1. SELECT campo1,campo2,campo3 FROM(
  2. SELECT a.campo1,a.campo2.b.campo3, ROW_NUMBER() OVER(partition BY 1.campo1) AS rn
  3. FROM tabla1 a
  4. LEFT JOIN tabla2 b ON (1.id=b.id)
  5. ) t1 WHERE rn=1

asi te sacaria solo un id prueba y nos comentas :)

saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #8 (permalink)  
Antiguo 29/11/2012, 11:41
Avatar de suap  
Fecha de Ingreso: julio-2009
Ubicación: La taberna de Moe's
Mensajes: 54
Antigüedad: 15 años, 4 meses
Puntos: 4
Respuesta: id repetido en select

Muchas gracias a todos Me ayudo la respuesta de Libras
__________________
Alan Carrillo

Etiquetas: repetido, 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 13:54.