SQL - ayuda porfavor

   
Vista:

ayuda porfavor

Publicado por Oscar okyzt@hotmail.com (1 intervención) el 02/06/2011 21:04:03
necesito vuestra ayuda porfavor,

mi problema es con tan solo una tabla:

necesito actualizar el campo G1, en la tabla gestion, al hacer un update actualiza todos los registros dada mi condicion where cuenta='abc' . sin embargo lo que requiero es actualizar solo el ultimo registro ingresado de la cuenta abc. y tengo el campo fecha_ingreso.

trate de muchas formas, incluyendo esta:

update gestion set G1='xyz' where cuenta_id='abc' and fecha_ingreso=max(fecha_ingreso)

y no me resulta,

porfavor si pudieran ayudarme, les agradeceré mucho...

pd: es para implementar en php, con lo cual todos los valosre seran reemplazados con variables, pero solo me falta obtener esta consulta...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

ayuda porfavor

Publicado por Leonardo Josué (878 intervenciones) el 03/06/2011 15:52:39
Hola Oscar:

Prueba con esto:

1
2
3
Select * from gestión
where cuenta_id='abc' and
fecha_ingreso = (select max(fecha_ingreso) from gestion where cuenta_id='abc')


Esto te debería devolver justamente los registros que quieres actualizar, y te serviría para confirmar antes de hacer el update. Si la consulta es correcta entonces simplemente cambias el selec * por el respectivo update:

1
2
3
update gestion set G1='xyz'
where cuenta_id='abc' and
fecha_ingreso = (select max(fecha_ingreso) from gestion where cuenta_id='abc')


si continuas con problemas sería conveniente que nos dijeras qué manejador de BD estás utilizando, ya que dependiendo de este puedes aplicar distintas técnicas para hacer la actualización.

Saludos
Leo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ayuda porfavor

Publicado por joint yoni_ce@hotmail.com (2 intervenciones) el 04/06/2011 03:31:37
Logica de busqueda:
paso 1: seleccionar la tabla a actualizar
update gestion

paso 2: asignar el campo o los campos lo que se cambiará
update gestion set G1='xyz'

paso 3: especificar valores a cambiar
update gestion set G1='xyz' where cuenta_id='abc'

paso 4: Ordenar por fecha
update gestion set G1='xyz' where cuenta_id='abc' Order by fecha_ingeso desc

paso 5: Limitar a que solo aparesca la ultima fecha (en este caso 1 )

update gestion set G1='xyz' where cuenta_id='abc' Order by fecha_ingeso desc LIMIT 1

creo que esto deveria de funcionar. es un poco mas facilon.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar