Unir datos de 2 tablas (entrada y salida) en una sola

Tengo dos tablas de productos: Entradas y Salidas. Cada una con sus campos de Fecha, Id producto, Nombre producto y cantidad (Bien sea de ingreso o salida dependiendo de la tabla). Ahora, necesito hacer una consulta que me permita unir y ver las dos en orden cronológico al mismo tiempo.

1 respuesta

Respuesta
2

Usa una consulta de union.

Vete a crear una consulta nueva, cambia a vista SQL y pon:

SELECT * FROM Entradas ORDER BY Fecha

UNION 

SELECT * FROM Salidas Order By Fecha;

Si así no te va, elimina el primer ORDER BY Fecha.

Un saludo.


Un nuevo foro de access, visítanos: http://nksvaccessolutions.com/Foro/ 

La verdad, ya intenté eso pero no es lo que busco. Es que tengo una tabla con Entradas de Producto (Fecha_Entrada, Id_Producto, Nombre, Marca, Cantidad_Entrada) y otra para las Salidas (Fecha_Salida, Id_Producto, Nombre, Marca, Cantidad_Salida). E hice una consulta para que me calculara los SALDOS. El reto es unir las dos tablas para que me deje ver todos los registros de entrada y salida del producto en orden cronológico. Algo así:

FECHA -  Id_Producto - Nombre - Marca - Cantidad_Entrada - Cantidad_Salida - Saldo

23-01-15   0001   Llave mixta 9/16"  Stanley                 1                                 0                        1

23-02-15   0001   Llave mixta 9/16"  Stanley                 0                                 1                        0

Entonces lo que quieres hacer no es exactamente unir las dos tablas y ver los datos en orden cronológico, algo que sí consigues con la consulta de unión indicada.

Veamos, te propongo que lo hagas en dos pasos, usando primero una consulta de unión para combinar ambas tablas y tomando como base esta consulta, calcular los saldos.

Consulta Auxiliar:

SELECT Fecha_Entrada As Fecha , Id_Producto, Nombre, Marca, Cantidad_Entrada, 0As Cantidad_Salida FROM Entradas

UNION ALL

SELECT Fecha_Salida As Fecha , Id_Producto, Nombre, Marca, 0 As Cantidad_Entrada,  Cantidad_Salida FROM Salidas ORDER BY Fecha;

Con esta consulta consigues este resultado:

FECHA -  Id_Producto - Nombre - Marca - Cantidad_Entrada - Cantidad_Salida 

23-01-15   0001   Llave mixta 9/16"  Stanley                 1                                 0                        

23-02-15   0001   Llave mixta 9/16"  Stanley                 0                                 1                        

Consulta Definitiva:

SELECT CAux.Fecha, CAux.Id_Producto, CAux.Nombre, CAux.Marca, CAux.Cantidad_Entrada, CAux.Cantidad_Salida, CInt(DSum("[Cantidad_Entrada]-[Cantidad_Salida]","CAux","[Id_Producto]=" & [Id_Producto] & " AND [Fecha]<=#" & [Fecha] & "#")) AS Saldo
FROM CAux;

Con esta consulta, en principio tienes lo que buscas. Fíjate que el saldo lo calculo en función del Id_Producto y de la fecha.

Te adjunto una BD para que veas el funcionamiento: http://www.filebig.net/files/iYzvWKGih2 

Si en tu BD tuvieras varios movimientos de un mismo producto el mismo día, es probable que la consulta te calcule mal el saldo para ese día (tiene en cuenta todos los registros que cumplen la condición en su conjunto). En ese caso mira este enlace, donde tratamos algo parecido: http://nksvaccessolutions.com/Foro/viewtopic.php?f=7&t=178 

Un saludo.


Un nuevo foro de access, visítanos: http://nksvaccessolutions.com/Foro/ 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas