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

Update From Tabla me inserta valores duplicados

Estas en el tema de Update From Tabla me inserta valores duplicados en el foro de SQL Server en Foros del Web. Hola a todos :) Tengo un problema que por más vueltas y lecturas no logro comprender por que se origina Tengo una tabla "Jugadores" con ...
  #1 (permalink)  
Antiguo 27/02/2009, 15:34
Avatar de Jorge_Mota  
Fecha de Ingreso: diciembre-2002
Ubicación: Chapinlandia :-D
Mensajes: 725
Antigüedad: 21 años, 11 meses
Puntos: 11
Pregunta Update From Tabla me inserta valores duplicados

Hola a todos :)

Tengo un problema que por más vueltas y lecturas no logro comprender por que se origina

Tengo una tabla "Jugadores"
con los valores pk:
1
2
3
4
5
6

Ejecuto este insert en mi tabla "rondas"
Código:
insert into rondas (jugador, oponente,id_torneo,numero_ronda)  
		select top 50 percent  id_jugador,null,id_torneo,@Ronda from jugador where tipo=0 and id_torneo= @torneo 
			and id_jugador not in (
				select jugador from rondas where id_torneo=@torneo and numero_ronda=@Ronda ) 
				and id_jugador not in (select oponente from rondas where id_torneo=@torneo and numero_ronda=@ronda) order by id_jugador

Es decir, traigo la mitad de los registros en jugadores y los inserto en el campo "Jugador"

Ahora ejecuto este otro query:

Código:
update rondas  set oponente = id_jugador from jugador j
			where tipo=0 and j.id_torneo= @torneo  and oponente is null 
			and numero_ronda=@Ronda 
			and j.id_jugador not in (select jugador from rondas where id_torneo=@torneo and numero_ronda=@Ronda)  
			and rondas.id_torneo=@torneo
Para que a cada registro insertado en ronda, lo actualice en el campo oponente con un pk de Jugador que no se haya insertado en el primer query

Mi idea es obtener en rondas estos valores
Código:
Jugador            Oponente
1                          4
2                          5
3                          6
Pero lo que obtengo es esto
Código:
Jugador            Oponente
1                          4
2                          5
3                          4
Y el pk 6 no lo inserta nunca! alguien que me pueda ayudar a ver donde está mi error por favor :( siempre me duplica un valor. mi tabla siempre tendrá registros pares. :( no me importa el orden en que queden asignados, podría quedar en jugador 1,5,3 contra 6,4,2 en fin da igual la asignación, solo quiero que quede bien :)

Gracias.
__________________
Jorge Mota
Blog
Gubiz estafa
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:41.