
Como reemplazar un grupo de registros con el valor mayor del grupo
Publicado por Terry (4 intervenciones) el 24/12/2022 17:32:30
Buen día a todos, quisiera solicitar de su ayuda para una tarea que me han encomendado, hace mucho tiempo programé en foxpro 2.0 para msdos por lo cual tengo conocimientos básicos de este lenguaje pero ya nada que ver con las versiones posteriores, tengo una base de datos dbf en la que estoy trabajando esta en visual foxpro 8 la cual tiene 246000 registros llamada movimientos_inventario en la que tengo los campos:
cod_producto C20
fecha_movimiento F 8
precio_costo N 14,6
Necesito agrupar los registros por mes año y cod_producto obteniendo de este último el registro de mayor valor del campo precio_costo y una vez obtenido reemplazar con dicho registro los registros que tengan menor valor y tengan el mismo codigo por mes año.
He logrado sacar con SELECT ALLTRIM(STR(MONTH(fecha_movimiento))) + "-" + ALLTRIM(STR(YEAR(fecha_movimiento))), cod_producto, MAX(precio_costo) FROM movimientos_inventario WHERE ALLTRIM(STR(MONTH(fecha_movimiento))) + "-" + ALLTRIM(STR(YEAR(fecha_movimiento))) = '1-2009' GROUP BY cod_producto, fecha_movimiento
un listado con el mes año y cod_producto y se supone el maximo del campo precio_costo pero me repite el codigo del producto y veo que tambien pone un precio_costo con algunos valores diferentes, como menciono no conozco mucho sobre este lenguaje de programación y lo que he logrado es debido a investigar en internet en esta página cada parte de lo aqui expuesto.
Por lo cual les pido me den una ayuda corregir y complementar la tarea que me han asignado en el trabajo.
Atentamente,
Terry Ayala

cod_producto C20
fecha_movimiento F 8
precio_costo N 14,6
Necesito agrupar los registros por mes año y cod_producto obteniendo de este último el registro de mayor valor del campo precio_costo y una vez obtenido reemplazar con dicho registro los registros que tengan menor valor y tengan el mismo codigo por mes año.
He logrado sacar con SELECT ALLTRIM(STR(MONTH(fecha_movimiento))) + "-" + ALLTRIM(STR(YEAR(fecha_movimiento))), cod_producto, MAX(precio_costo) FROM movimientos_inventario WHERE ALLTRIM(STR(MONTH(fecha_movimiento))) + "-" + ALLTRIM(STR(YEAR(fecha_movimiento))) = '1-2009' GROUP BY cod_producto, fecha_movimiento
un listado con el mes año y cod_producto y se supone el maximo del campo precio_costo pero me repite el codigo del producto y veo que tambien pone un precio_costo con algunos valores diferentes, como menciono no conozco mucho sobre este lenguaje de programación y lo que he logrado es debido a investigar en internet en esta página cada parte de lo aqui expuesto.
Por lo cual les pido me den una ayuda corregir y complementar la tarea que me han asignado en el trabajo.
Atentamente,
Terry Ayala

Valora esta pregunta


0