FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Seleccionar primer registro en la Clausula WHERE para Actualizar Valor.
Estimados amigos:
Tengo una tabla llamada afiliadoscontrol y otra afiliados , relacionadas por el id del afiliado, afiliados guarda los datos del afiliado y afiliadoscontrol guarda una lista de codigos de control de cuentas de cada afiliado de una mutual, se podria decir que este codigo esta asociado a cada trabajo que tiene un afiiliado de la mutual , es decir si trabaja en dos partes , este afiliado podria tener dos codigos de control distintos. Ahora bien, por razones de un mejor ordenamiento y control he agregado un campo mas a la tabla que en el caso de que tenga dos codigos de control, me diga cual seria el principal, esto es para realizar determinada operaciones como ser el cobro de la cuota social, este campo es de tipo numerico y tiene valor cero o uno. El problema es que debo poner un valor de un uno a este campo, que en el caso de que el afiliado tenga un solo codigo, no habria inconveniente, pero si es que tiene dos o mas , tendria que ser el primer valor ingresado de este afiliado. he aqui mi problema, pues no se como hacerlo. Lo estuve pensando de la siguiente forma : Código:
UPDATE afiliadoscontrol SET principal = 1 WHERE ( SELECT * FROM afiliadoscontrol INNER JOIN afiliados ON (afiliadoscontrol.afiliados_id = afiliados.id) ORDER BY afiliadoscontrol.id ASC LIMIT 1 ) alguna sugerencia? Gracias por tu tiempo.
__________________
Adrián Murúa. |
#2
|
||||
|
||||
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
||||
|
||||
Hola de nuevo.
Ahora que releo el hilo, no había visto que habías usado LIMIT, disculpa mi visión de topo No uso MySQL, pero yo probaría con algo parecido a:
Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#4
|
||||
|
||||
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) y no se como solucionarlo. Gracias por tu tiempo.
__________________
Adrián Murúa. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Seleccionar primer y ultimo registro | Jose Roman | Firebird e Interbase | 14 | 19-08-2008 20:35:46 |
Problema Para Actualizar Un Registro | sdiaz1983 | Conexión con bases de datos | 3 | 21-01-2008 04:00:10 |
Clausula SQL para mover un registro | karlaoax | SQL | 1 | 17-08-2007 21:49:25 |
cláusula Order by impide actualizar en tiempo real? | anghell77 | SQL | 4 | 30-10-2006 05:11:39 |
Primer valor | trex2000 | MS SQL Server | 2 | 11-10-2006 19:45:52 |
|