none
Query que retorne la suma de las ventas y las compras de un producto RRS feed

  • Pregunta

  • Hola, tengo estas dos tablas

    Compras (idcompra, idproducto,cantidad)

    Ventas (idventa,idproducto,cantidad)

    Producto(idproducto, descripcion)

    Cuando hago este query, los valores de las sumas que me retorna son erroneos.

    select p.descripcion,sum(dc.cantidad) as compras,sum(df.cantidad) as ventas from Producto P join
    Detalle_Compra Dc on P.id_producto=dc.id_producto join Detalle_Factura df on P.id_producto=df.id_producto
    group by p.descripcion


    Alguna sugerencia de como podría solucionar este problema.

    sábado, 12 de agosto de 2017 5:03

Respuestas

  • Cálcula por separado la sumatoria de las operaciones, por ejemplo:

    SELECT p.descripcion, COALESCE(dc.Compras, 0), COALESCE(df.Ventas, 0)
    FROM 
        Producto p
        LEFT JOIN (
    	   SELECT id_producto, SUM(cantidad) Compras 
    	   FROM Detalle_Compra GROUP BY id_producto
        ) dc ON p.id_producto = dc.id_producto
        LEFT JOIN (
    	   SELECT id_producto, SUM(cantidad) Ventas
    	   FROM Detalle_Factura GROUP BY id_producto
        ) df ON p.id_producto = df.id_producto
    GO


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    • Editado Willams Morales sábado, 12 de agosto de 2017 5:58
    • Marcado como respuesta Argenis R R sábado, 12 de agosto de 2017 12:51
    sábado, 12 de agosto de 2017 5:49

Todas las respuestas

  • Cálcula por separado la sumatoria de las operaciones, por ejemplo:

    SELECT p.descripcion, COALESCE(dc.Compras, 0), COALESCE(df.Ventas, 0)
    FROM 
        Producto p
        LEFT JOIN (
    	   SELECT id_producto, SUM(cantidad) Compras 
    	   FROM Detalle_Compra GROUP BY id_producto
        ) dc ON p.id_producto = dc.id_producto
        LEFT JOIN (
    	   SELECT id_producto, SUM(cantidad) Ventas
    	   FROM Detalle_Factura GROUP BY id_producto
        ) df ON p.id_producto = df.id_producto
    GO


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    • Editado Willams Morales sábado, 12 de agosto de 2017 5:58
    • Marcado como respuesta Argenis R R sábado, 12 de agosto de 2017 12:51
    sábado, 12 de agosto de 2017 5:49
  • Que es lo que intentas hacer, quieres comparar las compras con las ventas o que?... veo que estas uniendo las compras y el detalle con las ventas y el detalle uniendolas con el codigo del producto, ¿Para que?

    saludos.

    sábado, 12 de agosto de 2017 5:52
  • Estoy haciendo un reporte en el cual quiero mostrar las ventas y compras que tuvo un producto en un determinado rango de fechas.
    sábado, 12 de agosto de 2017 12:14