Volcar los resultados de una SQL de unión en una tabla

Expertos,

Tengo otro problemilla. Resulta que no sé como volcar sobre una tabla el resultado de una tabla de unión. La insert into (campo1, campo2) consulta1, al ser ésta de unión creo que no vale. Mi pregunta es, en este caso, ¿Está agotado el recurrir a SQL o hay algo que me permita hacerlo? ¿Se puede hacer con código o es que realmente le estoy pidiendo peras al olmo? Con los métodos DoCmd. Opentable y doCmd. OpenQuery ¿Puedo abrir los dos recordset y mediante un Do Until EOF ir pasando valores de la Query a la Table? ¿Voy por buen camino o es perder el tiempo?

3 Respuestas

Respuesta
1

Usa un subquery, para que crear una tabla

Crear tabas con copias de datos es generar redundancia

Respuesta
2

Juan, podrías usar otra consulta de datos anexados basada en la consulta de unión.

Pero también podrías hacerlo directamente en código. Por ejemplo, si tengo la tabla1

Y la tabla2

Y una tabla 3

En un botón( o cualquier evento de un formulario pongo

Cuando aprieto el botón

En caso de que solo quisieras unos registros en particular sería, por ejemplo

......from tabla1 where pais=""Alemania"""

.....from tabla2 where marca=""Peugeot"""

Respuesta
2

Si ya tienes la consulta, ¿qué necesidad de pasarla a una tabla?

Pero yo entiendo que si haces una consulta así:

INSERT INTO tabla SELECT * FROM consultaunion

Tendría que funcionarte.

Si no coinciden todos los campos se los puedes indicar :

INSERT INTO tabla(campo1, campo3...) SELECT campo2, campo5... FROM consultaunion

Porque las subconsultas me cuesta mucho razonarlas y teniendo la tabla me resulta más fácil.

De todos modos, muchas gracias.

Gracias.

Sabes que puedes trabajar con una consulta exactamente igual que con una tabla, ¿no?

¿Sin excepciones? porque si hay excepciones, prefiero las tablas y no tengo que tener en cuenta las excepciones.

Las tablas almacenan información, y las consultas muestran esa misma información, ya sea parcialmente (menos campos que la tabla original), ampliada (consulta de varias tablas), o filtrada.

Sobre una tabla puedes hacer una consulta, un formulario o un informe, y sobre una consulta también puedes hacer otra consulta, un formulario o un informe.

Solo has de tener en cuenta que hay consultas (como las de unión, las de totales y alguna otra según cómo relaciones las tablas/consultas que intervienen en ella) que son de solo lectura y no te permiten añadir ni modificar datos en ellas, aunque tampoco es tanto problema porque como te decía al principio, las tablas son las que almacenan la información y siempre puedes añadir/modificar lo que sea en ellas directamente.

Pero por sistema pasar los datos de una consulta a una tabla, a mi modo de ver, tiene dos "inconvenientes": primero, te obliga a tener más objetos en tu BD y ejecutar más procesos en ella, lo que minora su rendimiento, y segundo, va en contra de la normalización de las bases de datos.

Dicho esto, también tengo que señalar que en ocasiones, es más eficiente pasar los resultados de una consulta a una tabla temporal (que luego se eliminará), cuando por la cantidad de cálculos, datos, joins... que tienes la consulta hace pesado trabajar con ella.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas