Unir dos tablas en otra tabla resumen

Tengo dos tablas con datos diferentes que he de fusionar en otra tabla para un formulario que recoge el resumen de general de ventas con los Importes Ventas y el Coste de Compra

Tabla: VENTAS

IdConcepto

FechaVenta

Concepto

UnidadesVenta

Importeventa

Tabla: COMPRAS

IdConcepto

PCompra

Tabla Resumen:RESULTADOS

IdConcepto

FechaVenta

Concepto

ImporteVenta

UnidadesVenta

PCompra

Os agradecería muchísimo si me indicaseis como tengo que hacer para conseguir esa fusion de las dos tablas en la tabla RESULTADOS.

Respuesta
1

No dices el entorno, así que voy a suponer que lo tienes en VBA.

Asumo que la tabla Resultados es la suma de Ventas y Compras, así que lo primero que hago es borrar los datos de la misma para agregar los de las otras dos.

Como los campos se llaman igual, el procedimiento es muy simple:

    CurrentDb.Execute "DELETE * FROM Resultados"
    CurrentDb.Execute "INSERT INTO Resultados SELECT * FROM Ventas"
    CurrentDb.Execute "INSERT INTO Resultados SELECT * FROM Compras"

Si el entorno no es este dilo y buscamos otra forma .... :-)

También se puede hacer con una consulta almacenada:

SELECT * INTO Resultado
FROM (SELECT IdConcepto, FechaVenta, Concepto, UnidadesVenta, ImporteVentas, 0 AS PCompra FROM Ventas
UNION ALL SELECT IdConcepto, '' AS FechaVenta, '' AS Concepto, 0 AS UnidadesVenta, 0 AS ImporteVentas, PCompra FROM Compras) AS Tabla1;

Esta es una consulta de creación de tabla, a tener en cuenta que si la tabla Resultado no existe la creará directamente y si existe dará un mensaje previo pidiendo permiso para borrarla.

Si no queremos borrar/crear la tabla, habría que hacerlo en dos consultas distintas, una para borrar los registros y otra para anexarlos.

Gracias por toda tu ayuda.

He optado por la Consulta de union y tengo los los siguientes incidencias.

Nombres Tablas Reales:

Ventas: VENTASMERCERIA

Precio de Compra en tabla: VENTASMERCERIALINEASFAMILIAS

Tabla fusionada: RESULTADOSBENEFICIOSVENTAS

Es lo que tengo insertado con los datos existentes reales:

SELECT * INTO RESULTADOSBENEFICIOSVENTAS
FROM (SELECT IdConcepto, FechaVenta, Concepto, Unidades, Importe,PCompra FROM VentasMerceria

UNION ALL SELECT IdConcepto, '' AS FechaVenta, '' AS Concepto, 0 AS UnidadesVenta, 0 AS ImporteVentas,0 AS PrecioCompra FROM VENTASMERCERIALINEASFAMILIAS) AS Tabla1;

Y el Campo: PrecioCompra , no me recoge el valor, el resto de campos si lo hace.

El campo correcto es (PrecioCompra) en la Tabla Resultados, no como te lo había indicado anteriormente como (PCompra)

He añadido un (0 AS)en el (UNION ALL...) al PrecioCompra que no se si es correcto hacerlo, pero lo he visto en los campos numéricos.

Si llamo a la consulta desde el Formulario me dice esto:

En el Form tengo colocado el acceso a la consulta en el evento: Al cargar

Si necesitas otra información, dímelo y te la envío.

Un saludo

Me he dado cuenta que me inserta los precios de compra pero creando líneas nuevas.

Lo que me interesa es que por cada línea de venta me inserte el Precio de la Compra sacándolo de la tabla: VENTASMERCERIALINEASFAMILIAS que es la tabla que contiene los Precios de Compra.

El concepto es distinto, pero la respuesta no mucho, solo hay que cambiar la consulta de union por otra que relacione ambas tablas entre si:

SELECT * INTO Resultado3
FROM (SELECT Ventas.*, PrecioCompra
FROM Ventas LEFT JOIN Compras ON Ventas.IdConcepto = Compras.IdConcepto)  AS Tabla1;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas