Operaciones con access

Tengo una duda con operaciones en access; tengo una consulta donde hay X campos; kiero hacer una resta pero depende de dos campos o dos criterios;
Consulta
Campo A Campo B Campo C Campo D
     A 2001 Enero 10
     A 2001 Febrer 5
     A 2002 Abril 5
Mi pregunta es la siguiente: como puedo restar dos números [10-5] siempre que el campo B sea 2001 pero tener en cuenta que cada mes hay un valor diferente y mi intención es hacer una relación de consumo de cada mes. Aplico la fórmula SiInm pero no me hace dicha operación.
Me serias de gran ayuda

2 Respuestas

Respuesta
1
Las consultas de Access te permiten realizar operaciones entre campos, lo que tu quieres hacer es operaciones entre registros de un mismo campo. La única manera que se me ocurre a mi es mediante programación Visual + SQL, que rellene una tabla flotante con los datos que vaya generando el código.
Lo que se me ocurre es que tengas una tabla de Stock y otra de consumos, de esta manera puedes hacer una consulta haciendo la resta de dos registros que compartan una condición similar, en tu caso el año y el mes. Así puedes tener haciendo una consulta puente el stock al principio del mes, más las compras o incorporaciones durante el mes y luego de la tabla consumos restarle los consumos de ese mismo período. Esto lo puedes hacer con las fórmulas que conoces, perfectamente.
Respuesta
1
Lo que quieres hacer es má propio de una Hoja de datos que de una base de datos, pero como me pica la curiosidad de esta solución, he reventado unas cuantas neuronas y te explico como sería una solución sin usar programación.
La tabla base se llamaría TblDatos001 y he renombrado los campos según:
Campo B= Año
Campo C=Mes
Campo D=Dato
Tendríamos que crear tres consultas con los códigos SQL siguientes.
Consulta001
SELECT DateValue("01/" & [mes]+1 & "/" & [año]) AS MesPosterior, DateValue("01/" & [mes] & "/" & [año]) AS MesActual, TblDatos001.*
FROM TblDatos001;
Consulta002
SELECT DateValue("01/" & [mes] & "/" & [año]) AS Fecha, TblDatos001.*
FROM TblDatos001;
Consulta003
SELECT Consulta001.MesActual, Consulta001.[Campo A], Consulta001.Año, Consulta001.Mes, Consulta001.Dato, Consulta002.Dato
FROM Consulta001 LEFT JOIN Consulta002 ON Consulta001.MesPosterior = Consulta002.Fecha;
Lo que hago es crear una consulta con datos de un registro y lo cruzo con datos del registro siguientes. Habría que ajustar el tema del cambio de año con un condicionante ya que si el mes es 12 debe de cambiar el año.
Evidentemente te aconsejo que si no controlas programación realices este tipo de registros a través de un EXCEL ya que como puedes ver en BD es un autentico coñazo.
Una aperta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas