Consulta union campos tablas

Me ayudaste mucho hace poco y querría hacerte otra consulta.

Tengo una base de datos con varias tablas. Ejemplo:

TABLAENERO con campos MATRÍCULA, LITROSENERO, KMENERO

Por ejemplo:

1111PRI;6;100

2222SEG;7:120

3333TER;8;125

Ahora tengo otra tabla TABLEFEBRERO con campos para febrero, pero OJO, puede haber las mismas matrículas o no: MATRÍCULA, LITROSFEBERO, KMFEBRERO

1111PRI;7;110

2222SEG;8;125

4444CUA;9;145

Es una simplificación, pero tendría en realidad 12 tablas, UNA POR MES y podría tener algún campo más, que es igual pero particularizado a cada mes.

El objetivo es conseguir una TABLA ANUAL:

MATRICULA; LITROSENERO, KMENERO, LITROSFEBRERO, KMFEBRERO....

1111PRI ;6;100;7;110...

2222SEG;7;120;8;125...

3333TER;8;125;0;0....

4444CUA;0;0;9;145...

He estado trasteando con INNER JOIN, LEFT JOIN Y RIGHT JOIN, pero no sé si se puede conseguir una TABLA ANUAL en la que vengan, para todas las matrículas, los litros y kilómetros de cada mes.

Pero vuelvo a significar imporante, NO SIEMPRE TENGO LAS MISMAS MATRÍCULAS CADA MES, por lo que con INNER JOIN pierdo las que no son comunes y con LEFTJOIN y RIGHTJOIN combinados no sé si se puede además pensando en 12 meses!.

¿Quizá esto sólo puede hacerse con DAO Y ADO?

1 Respuesta

Respuesta
1

Sin meterme con DAO o ADO, se me ocurren dos posibilidades:

1º/ Pasar los datos de las 12 tablas a una única tabla anual, en la que incluirías una campo nuevo llamado período (en el ejemplo que te mando lo puse numérico, pero podría ser texto sin problema).

Luego creas (con el asistente) una tabla de referencias cruzadas en la que pones en las filas las matriculas, en las columnas el nuevo campo periodo, y en la intersección los KM, y marcas para que te ponga la suma (por ejemplo, porque entiendo que tienes un único registro por matrícula en cada periodo).

Luego haces lo mismo, pero con los litros.

Por último, creas una consulta basada en estas do tablas de ref. Cruzadas, relacionándolas entre sí por matricula.

2º/ Tener una tabla sólo para las matrículas (ID, MATRICULA), y relacionarla con las matrículas de las 12 tablas mensuales.

Creas una consulta nueva, con las 4 tablas, añades matricula(TMatriculas) y KM y LITROS de cada una de las 12 tablas. En las propiedades de combinación de cada relación, le marcas incluir todos los registros de matriculas y aquellos de la tablaX donde los cuadros combinados sean iguales.

<a>http://www.filebig.net/files/Fnuq9yDUM5</a>

Si no te sirve ninguna de estas opciones, por la tarde miro cómo se podría hacer por DAO.

Alucino, gracias!!!!
Creí que sabía algo de access, pero cada vez me siento más ignorante.
Lo de la tabla de referencias cruzadas, debí olvidarlo si alguna vez lo estudié.
Lo analizaré con calma.
El segundo ejemplo, es más sencillo para mí, y además lo creo viable, pues tengo en la base de datos de maquinaria todas las matrículas posibles, con lo cual estimo que funcionaría.
Tampoco sé como no soy capaz de que se me ocurra este segundo ejemplo, no parece tan complejo, pero creo que estoy desbordado, que intento resolver las cosas del modo más complicado sin pensar en lo más básico.
Gracias, gracias y gracias!!

Una puntualización: en la segunda posibilidad, ni siquiera te hace falta relacionar las tablas mensuales con la tabla de matriculas. Es suficiente con que hagas la relación de matricula a matricula en el diseño de la relación, y así no tienes que modificar todos los registros de las 12 tablas.

Fue algo que no pensé en un principio... XD

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas