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.