Consulta Encuentro 09


CREATE PROCEDURE sp_entradasSalidaProducto
AS
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

    -- Insert statements for procedure here
    SELECT SalidasAnuales.anio,EntradasAnuales.producto,EntradasAnuales.cantidad Entrada,SalidasAnuales.cantidad Salida
    FROM
    (SELECT YEAR(F.fechaFactura) anio, P.Producto,sum(FD.cantidad) cantidad
     FROM Producto P
          INNER JOIN
          FacturaDetalle FD
          ON FD.idProducto =P.idProducto
          INNER JOIN
          Factura F
          ON F.idFactura=FD.idFactura
    GROUP BY YEAR(F.fechaFactura), P.Producto
    ) AS SalidasAnuales
    INNER JOIN
    (SELECT YEAR(O.fechaOrden) anio, P.Producto,sum(OD.cantidad) cantidad
     FROM Producto P
          INNER JOIN
          OrdenDetalle OD
          ON OD.idProducto =P.idProducto
          INNER JOIN
          Orden O
          ON O.idOrden=OD.idOrden
    GROUP BY YEAR(O.fechaOrden), P.Producto
    ) AS EntradasAnuales
    ON SalidasAnuales.anio= EntradasAnuales.anio
END
GO

Comentarios