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

Seleccionar primer registro en la Clausula WHERE para Actualizar Valor.

Estas en el tema de Seleccionar primer registro en la Clausula WHERE para Actualizar Valor. en el foro de Bases de Datos General en Foros del Web. Estimados amigos: Tengo una tabla llamada afiliadoscontrol y otra afiliados , relacionadas por el id del afiliado, afiliados guarda los datos del afiliado y afiliadoscontrol ...
  #1 (permalink)  
Antiguo 27/05/2012, 11:47
 
Fecha de Ingreso: septiembre-2005
Mensajes: 2
Antigüedad: 19 años, 2 meses
Puntos: 0
Pregunta 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

)
Pero no funciona.

alguna sugerencia?

Gracias por tu tiempo.
  #2 (permalink)  
Antiguo 27/05/2012, 15:54
 
Fecha de Ingreso: octubre-2009
Mensajes: 35
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: Seleccionar primer registro en la Clausula WHERE para Actualizar Valor.

Bueno quizás te ayude esto si es que el id del afiliadoscontrol es autoincremental o por si tenes también un campo fecha para ver cuando se ingreso el control del afiliado

Código SQL:
Ver original
  1. UPDATE afiliadoscontrol ac SET principal = 1
  2. WHERE ac.id= (SELECT MIN(af.id) FROM afiliadoscontrol af
  3. WHERE ac.afiliados_id=af.afiliados_id)

Código SQL:
Ver original
  1. UPDATE afiliadoscontrol ac SET principal = 1
  2. WHERE ac.fecha= (SELECT MIN(af.fecha) FROM afiliadoscontrol af
  3. WHERE ac.afiliados_id=af.afiliados_id)
  #3 (permalink)  
Antiguo 27/05/2012, 17:29
 
Fecha de Ingreso: septiembre-2005
Mensajes: 2
Antigüedad: 19 años, 2 meses
Puntos: 0
Respuesta: Seleccionar primer registro en la Clausula WHERE para Actualizar Valor.

Gracias George_89 por tu respuesta, de las dos formas que me sugieres, la primera es la que corresponderia, pues no esta contemplada la fecha del ingreso del codigo de control.

Tu codigo da un error , pues me dice que el alias ac no puede estar en la clausula from del 2do. where.

Etiquetas: mysql
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 23:10.