En una consulta de Access con campo calculado llevar un acumulado

Señores muy buenos días. Mi pregunta es la siguiente. En una consulta de access tengo los siguientes campos NombrePro (Nombre Producto) Canti, Vrventa, VrTotal(Calculado VrVenta * Canti). Lo que quiero es agregarle otro campo a consulta llamado Acumulador donde se va a ir sumando el VrTotal. Detallo en ejemplo como debe quedar la consulta.

Nombre Producto      Canti        Vrventa       VrTotal       Acumulado

Producto 1                    10                100            1.000                1.000

Producto 2                    20             2.000          40.000              41.000

Producto 3                      5            1.000             5.000              46.000

producto 4                    25            2.000           50.000              96.000

Como pueden ver el campo Acumulado lleva la suma del VrTotal.

De antemano doy las gracias a la o las personas que me brinden su ayuda

1 Respuesta

Respuesta
1

Supongamos que la tabla Se llama Productos con Idproducto, NombrePro,... y con ella has hecho una consulta. Añádele un campo

acumulado: (select sum([vrtotal])from [productos] as temp where [temp].[idproducto]<=[productos].[idproducto])

Señor González muchísimas gracias por responder. Haber te cuento. Hice exactamente como me indicaste, pero al correr la consulta esta pide un parámetro, si le doy VrTotal me saca un error, pero si le escribo por ejemplo 200 ahí si suma en el acumulador pero lo hace de 200 en doscientos, es decir, 200, 400, 600 etc. Pregunto el campo VrTotal debe estar es en la Tabla?. Para este caso el campo calculado VrTotal, lo tengo es en la consulta y esta se llama Consulta_Acumulado, será por aquí el error. Por favor te pido encarecidamente que me eches otra manito y si no es tanta la molestia me podrias explicar que quiere decir pedacito de codigo  as temp where [temp].  

La culpa es mía, creía que Vrtotal era un campo de la tabla. Al ser un campo calculado debes poner

acumulado: (select sum([vrventa]*[canti])from [ventas] as temp where [temp].[idventa]<=[ventas].[idventa])

Lo que hace la instrucción es "crear" una tabla temporal(que no existe) y en ella hace la suma de precio*cantidad, de los valores anteriores a cada idventa(id de la tabla temp<=id de la tabla Ventas) del registro actual y se los asigna al campo Acumulado.

De todas formas, si quieres, repito, si quieres, mándame un mensaje a [email protected] y te mando un ejemplo. Si lo haces, en el asunto del mensaje pon tu alias Eder, ya qe si no se quien me escribe ni los abro.

¡Gracias!, muchísimas gracias por contestar y darme la solución con claridad y mucha eficiencia.

Un millón de gracias por su respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas