IF EXISTS (SELECT * FROM sysobjects O, sysusers U
          WHERE
            o.name = 'Rentabilidade_View'  and
            type = 'V'                  and
            u.uid = o.uid               and
            u.name = USER)
   DROP VIEW RENTABILIDADE_VIEW;
GO

CREATE VIEW RENTABILIDADE_VIEW
(CDPRODUTO, NMPRODUTO,SGUNIDADE,CDFILIAL,NMFILIAL,CDLOJA,NMLOJA,CDCAIXA,NMCAIXA,DTENTRVENDA,VRPEALPRODIT,
 VRUNIT_BRUTO, VRUNIT_BRUTO_DESC,VRIMPOSTO,QTPRODVEND) AS
SELECT
    IT.CDPRODUTO, PR.NMPRODUTO, PR.SGUNIDADE,
    VE.CDFILIAL,FI.NMFILIAL,VE.CDLOJA,LO.NMLOJA,CA.CDCAIXA,CA.NMCAIXA,VE.DTENTRVENDA,
    ISNULL(IM.VRPEALPRODIT,0) VRPEALPRODIT,
    (IT.VRUNITVEND + ISNULL(IT.VRUNITVENDCL,0)) AS VRUNIT_BRUTO,
    (IT.VRUNITVEND + ISNULL(IT.VRUNITVENDCL,0)) - (ISNULL(IT.VRDESITVEND,0)/IT.QTPRODVEND) AS VRUNIT_BRUTO_DESC,
    ROUND(((IT.VRUNITVEND + ISNULL(IT.VRUNITVENDCL,0)) - (ISNULL(IT.VRDESITVEND,0)/IT.QTPRODVEND)) * (ISNULL(IM.VRPEALPRODIT,0)/100),2) AS VRIMPOSTO,
    SUM(IT.QTPRODVEND) AS QTPRODVEND
  FROM
    FILIAL FI,VENDA VE,LOJA LO, PRODUTO PR, CAIXA CA, ITEMVENDA IT LEFT JOIN
    (SELECT SUM(IM.VRPEALPRODIT) AS VRPEALPRODIT, IM.CDFILIAL, IM.CDCAIXA, IM.NRSEQVENDA,
     IM.NRSEQUITVEND
     FROM ITVENDAIMPOS IM, ITEMVENDA IT
     WHERE (IM.CDFILIAL     = IT.CDFILIAL    ) AND
           (IM.CDCAIXA      = IT.CDCAIXA     ) AND
           (IM.NRSEQVENDA   = IT.NRSEQVENDA  ) AND
           (IM.NRSEQUITVEND = IT.NRSEQUITVEND)
     GROUP BY IM.CDFILIAL, IM.CDCAIXA, IM.NRSEQVENDA,
              IM.NRSEQUITVEND ) IM  ON(IM.CDFILIAL     = IT.CDFILIAL)     AND
                                      (IM.CDCAIXA      = IT.CDCAIXA )     AND
                                      (IM.NRSEQVENDA   = IT.NRSEQVENDA)   AND
                                      (IM.NRSEQUITVEND = IT.NRSEQUITVEND)
  WHERE
    FI.CDFILIAL   = VE.CDFILIAL   AND
    VE.CDFILIAL   = IT.CDFILIAL   AND
    VE.CDCAIXA    = IT.CDCAIXA    AND
    VE.NRSEQVENDA = IT.NRSEQVENDA AND
    VE.CDFILIAL   = LO.CDFILIAL   AND
    VE.CDLOJA     = LO.CDLOJA     AND
    IT.CDPRODUTO  = PR.CDPRODUTO  AND
    VE.IDSITUVENDA <> 'C'         AND
    VE.CDFILIAL   = CA.CDFILIAL   AND
    VE.CDCAIXA    = CA.CDCAIXA
  GROUP BY
    VE.CDFILIAL,FI.NMFILIAL, VE.CDLOJA,LO.NMLOJA,CA.CDCAIXA,CA.NMCAIXA,VE.DTENTRVENDA,IT.CDPRODUTO,PR.NMPRODUTO,PR.SGUNIDADE,
    ISNULL(IM.VRPEALPRODIT,0),
    (IT.VRUNITVEND + ISNULL(IT.VRUNITVENDCL,0)),
    (IT.VRUNITVEND + ISNULL(IT.VRUNITVENDCL,0)) - (ISNULL(IT.VRDESITVEND,0)/IT.QTPRODVEND),
    ROUND(((IT.VRUNITVEND + ISNULL(IT.VRUNITVENDCL,0)) - (ISNULL(IT.VRDESITVEND,0)/IT.QTPRODVEND)) * (ISNULL(IM.VRPEALPRODIT,0)/100),2)
GO

