Consulta sobre 2 tablas con totales por meses

Para obtener un informe partiendo de 2 tablas distintas.

En una tengo los ingresos y la fecha de cada uno de ellos. En la otra los gastos de la misma manera.

Quisiera obtener la diferencia entre los gastos y los ingresos agrupados por cada uno de los meses.

Los campos fecha estan definidos como Fecha/hora y formato dd/mm/aaaa.

1 respuesta

Respuesta
1

Dentro de las varias posibilidades que seguro hay te propongo:

1.- Añadir dos campos calculados a las tablas que ya tienes y así los tienes para estadísticas anuales si quieres.

Tabla Ingresos:

Un campo de MesIngreso con la Fórmula: Mes([FechaIngreo])

Un Campo de AñoIngreso con la Fórmula: Año([FechaIngreso])

Tabla Gastos:

Un campo de MesGasto con la Fórmula: Mes([FechaGasto])

Un campo de AñoGasto con la Fórmula : Año([FEchaGasto])

2.- Una Consulta Agrupando los Ingresos por Meses, sumando las cantidades por ejemplo en un Campo: IngresosMes

A la Consulta le puedes llamar QryIngresoMeses

3.- Ídem de los Gastos. Consulta QryGastoMeses

4.- Create una Tabla con los Números del 1 al 12 Ejemplo TblMeses

5.- Crea una consulta tomando TblMeses, QryIngresoMeses y QryGastoMees.

No olvides esablecer la Relación de la TblMeses por el numero del mes con cada una de las Consultas en Uno a Varios, tomando Todos los valores de TblMeses y los coincidentes de las Consultas,

Selecciona el Mes de TblMeses, IngresosMes, GastosMes, un campo de Diferencia y el tema listo.

Ya me contarás . Saludos >> Jacinto

Se me olvidó comentarte, que si hay meses sin ingreo o Gasto, te quedará un Nulo.

Para evitar el error en el Resultado, que le puedes llamar SaldoMes, haces >>

SaldoMes:Nz([IngresosMes];0)-Nz([GastosMes];0)

Mis saludos. >> Jacinto

Gracias Jacinto ahora lo probaré. Como ves (por preguntas anteriores) mi guerra con las fechas no tiene fin.

Por lo pronto se me ocurre que esta solución que me propones quizá no contemple el que pueda sacar este tipo de informes para varios años simultáneamente. ¿Es así?.

No te preocupes que con las Fechas creo que todos hemos tenido problemas y aún algunos y en algunos casos los seguimos teniendo, ya verás que con la práctica aminoran las dificultades.

Sobre la estadistica por años, claro que puedes hacerla.

La estructura es la misma que para los meses, solo que creandote otra tabla Auxiliar de Años, ejemplo TblAños con los que necesites.

En la relación será por año, uno a varios etc.

Si quieres, a las Consultas les llamas simplemente QryIngresos y QryGastos

Pones los Campos AñoIngreso y AñoGasto haciendo referencia a los campos de las Tablas.

La ventaja de disponer de los datos fuente es que después los puedes tratar con Referencias Cruzadas ...

Ya me contarás. Saludos >> Jacinto

Hola, he creado los campos correspondientes en las tablas. Por seguir con la nomenclatura que ya tenia los he llamado mesgasto, anogasto y mesvisita y anovisita para los ingresos.

A continuación he creado dos consultas:

CONSULTA-TOTAL-GASTOS y CONSULTA-TOTAL-INGRESOS Con los campos calculados ingresomensual y gastomensual.

Dos tablas más para los meses y los años TAB-MESES y TAB-ANOS con los números de mes y su literal y un tramo de 20 años en el de los años.

Hasta aquí todo perfecto pero el problema surge al crear la tercera y definitiva consulta.

He seleccionado las tablas TAB-MESES y TAB-ANOS y las 2 consultas CONSULTA-TOTAL-GASTOS y CONSULTA-TOTAL-INGRESOS.

He comenzado por probar solo con meses y sin realizar la diferencia. He creado la relación del campo MES de la tabla TAB-MESES con los campos de meses de las 2 consultas marcando la opción 2

"Incluir todos los campos de TAB-MESES y solo aquellos registros de "CONSULTA-TOTAL-GASTOS" donde los campos combinados sean iguales"

De la misma forma para la otra consulta.

Luego he seleccionado el campo MES de la tabla, los 2 totales de las consultas y ...

El mensaje es:

"No se puede ejecutar la instrucción SQL porque combinaciones externas ambiguas. Para forzar que se ejecute primero una de las combinaciones, cree una consulta independiente que realice la primera combinación y después incluya esta consulta en la instrucción SQL".

Me parece que la relación de la tabla meses es la causante del problema. ¿Tendría que obtener la relación antes o algo así?.

La verdad es que cualquier respuesta que ahora te dé sin tener la BD, sería arriesgada y con altas probabilidades de errar.

Si te parece te ofrezco la alternativa de que pongas tu BD aquí en un enlace, y mejor si los datos son ficticios.

Y si quieres otra alternativa es que me la envíes a [email protected] y la miro a ver si lo solucionamos. Un saludo >> Jacinto

Si te parece te preparo algo con unos pocos datos y te lo envío

Prfecto, lo espero y así si veo alguna otra solución también te la propondré.

Mis saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas