Ver Mensaje Individual
  #4  
Antiguo 28-05-2012
Avatar de Adrian Murua
Adrian Murua Adrian Murua is offline
Miembro
 
Registrado: oct 2003
Ubicación: Tucuman - Argentina
Posts: 45
Reputación: 0
Adrian Murua Va por buen camino
Unhappy

Gracias por responder ecfisa.

Mira, la idea es poner un 1 en el campo principal a todos aquellos codigos de control que sean los primeros ingresados para un afiliado determinado.
es decir algo como ;

tabla afiliadoscontrol
---------------------

ID | CODIGO | PRINCIPAL | AFILIADOS_ID
----------------------------------------------
1 | 1234567 | 1 | 29 <----- afiliado con un codigo de control
2 | 5638952 | 1 | 120 <----- afiliado 120 con el primer codigo de control campo principal en uno
3 | 2286354 | 0 | 120 <------afiliado 120 con el segundo codigo de control campo principal en cero
4 | 5842087 | 1 | 56 <----- afiliado con un codigo de control
.. | .......... | ..... | .....



El codigo que me propusiste lo probe y selecciona, en el caso del ejemplo de arriba los dos codigos del afiliado 120, lo que pretendo si se puede seria que solo me seleccione uno de los codigo del afiliado 120, que tendria que ser el primero, en este caso.

Estuve investigando y consegui este codigo , pero me sale un error , este es el codigo

Código:
UPDATE afiliadoscontrol as ac SET ac.principal = 1
WHERE ac.id= (SELECT min(af.id) FROM afiliadoscontrol as af
WHERE ac.afiliados_id=af.afiliados_id)
me sale este error : You can't specify target table 'ac' for update in FROM clause.

y no se como solucionarlo.

Gracias por tu tiempo.
__________________
Adrián Murúa.
Responder Con Cita