Jump to content

Recommended Posts

Como va? estoy armando un programa de gestión de inventarios en excel el cual tiene su base de datos en access, Desde excel envío los registros de salida de productos a una tabla de access que se llama "Salidas" la cual tiene los siguientes campos: el producto, el numero de factura y la cantidad del producto. De la misma forma también envía los registros de entrada de productos a una tabla que se llama "Entradas". En resumen: tengo dos tablas: una entrada y otra de salida, ambas tienen cantidades positivas de productos, y estos productos se encuentran repetidos. Necesitaría obtener una tabla que contenga la lista de productos de ambas tablas pero de productos sin repetir y con la cantidad que resulte de la resta de la suma total de los ingresos menos la suma total de las salidas para que después pueda capturar esos datos en un listbox de excel, O si es posible quizas con una sentencia SQL conseguir el mismo resultado ya que Carezco de conocimientos en Acces y en un principio pensé que iba a ser fácil de resolver para mi, pero la verdad me esta dando unas vueltas barbaras. Agradeceré a quien me pueda orientar con este tema y cualquier otra forma de resolución, solo necesito tener el stock almacenado en la base de datos. Un abrazo y disculpen pero ya había abierto este hilo en acces pero parece que no hay nadie por ahí, espero no se enojen por volver a abrir este hilo.

Share this post


Link to post
Share on other sites

Prueba esta consulta:

SELECT Entradas.Cod, Max(Entradas.descripción) AS Dedescripción, Sum(entradas.cantidad-salidas.cantidad) AS Existencia
FROM Entradas LEFT JOIN salidas ON Entradas.Cod = salidas.Cod
GROUP BY Entradas.Cod;

 

Share this post


Link to post
Share on other sites
Hace 9 horas, Antoni dijo:

Prueba esta consulta:


SELECT Entradas.Cod, Max(Entradas.descripción) AS Dedescripción, Sum(entradas.cantidad-salidas.cantidad) AS Existencia
FROM Entradas LEFT JOIN salidas ON Entradas.Cod = salidas.Cod
GROUP BY Entradas.Cod;

 

Antoni muchas gracias por ayudarme! ya me había dando por vencido :( probé tu consulta y me dio como resultado en cemento avellaneda 1180(debería ser 580), o sea que me duplico el ingreso, ya que en entradas figura un registro de cemento avellaneda x 600 pero en salidas hay dos registros(10 retiros de una factura y 10 retiros de otra factura) por lo tanto el resultado que arroja es: 600 x 2(duplicado porque hay dos registros de salidas) menos 20 que serian de los retiros que si estarían bien.
En el caso de la CAL hidrat sucede lo contrario: me arroja 658 porque existe un ingreso de 550 y otro de 100, y una salida de 1,  y lo que ocurre es que me duplica la salida por los dos ingresos que hay, por lo tanto lo que calcula es 550 + 100 - 2=658. 

Esto mismo me sucedió cuando intente en acces crear una consulta manualmente.

Volviendo al principio. Pïdo disculpas por no explicar bien las tablas en el archivo Access ya que es un quilombo por las cosas que estaba intentando y no pude conseguir. Aclaro ahora bien: tanto las tablas existencia y salidas van a tener los productos duplicados ya que proceden de ordenes de compras y ventas. La tabla PERSONAS es la tabla que contiene los registros UNICOS de productos los cuales abastecen las consultas de compras y ventas.

Share this post


Link to post
Share on other sites

Prueba así:

SELECT cod AS Código, MAX(Descripción) AS Denominación, SUM(cantidad) AS Existencia FROM
          (SELECT Entradas.Cod, MAX(entradas.descripción) AS Descripción, SUM(Entradas.Cantidad) AS Cantidad FROM Entradas GROUP BY Entradas.Cod UNION
           SELECT salidas.Cod, MAX(salidas.descripción) AS Descripción, SUM(salidas.Cantidad) * -1 AS Cantidad   FROM salidas    GROUP BY salidas.Cod)
GROUP BY cod HAVING SUM(cantidad)>0
ORDER BY cod;

 

Share this post


Link to post
Share on other sites
En 24/6/2019 at 15:03 , Antoni dijo:

Prueba así:


SELECT cod AS Código, MAX(Descripción) AS Denominación, SUM(cantidad) AS Existencia FROM
          (SELECT Entradas.Cod, MAX(entradas.descripción) AS Descripción, SUM(Entradas.Cantidad) AS Cantidad FROM Entradas GROUP BY Entradas.Cod UNION
           SELECT salidas.Cod, MAX(salidas.descripción) AS Descripción, SUM(salidas.Cantidad) * -1 AS Cantidad   FROM salidas    GROUP BY salidas.Cod)
GROUP BY cod HAVING SUM(cantidad)>0
ORDER BY cod;

 

Antoni, funciona a la perfección pensé que era imposible resolverlo con una sentencia sql y que tendría que haber acudido a resolverlo en access. No se como agradecerte, cada vez que necesito algo y veo alguna respuesta tuya en un post funciona, eres increíble.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...

Important Information

Privacy Policy

Ayuda Excel - Madrid, Madrid, ES - Valorada por 5112 personas - Aprender Excel - Total: 4.7 / 5