none
Unificar um SQL RRS feed

  • Pergunta

  • Este select abaixo está me trazendo os produtos duplicados, porém preciso que o mesmo me traga somente o total de produtos vendidos no mês e não repetindo o campo cdproduto na consulta:

    DECLARE @DTINICIAL DATETIME,@DTFINAL DATETIME

    SET @DTINICIAL = '20120201'              --<<--INSIRA A DATA INICIAL AQUI!!!

    SET @DTFINAL =    '20120401'              --<<--INSIRA A DATA FINAL AQUI!!!

    select      P.CDPRODUTO,

                P.DsProduto,

                CF.NrCupomFiscal,

                NF.NrSerie,

                CF.CdFilial,

                INF.QTPRODUTO,

                INF.DtRegistro,

                INF.VLUNITARIO,

                SP.QtEstoqueMinimo,

                NG.CdUsuario,

                U.DsNome,

                U.CdFilial,

                NG.CdMovimentacao,

                G.DsGrupoProduto,

                case CF.NrCupomFiscal when NULL then 'NF' else 'CF' end as Tipo

    from ItenNoFi INF

          LEFT JOIN NotaFisc NF ON INF.CDNOTAFISCAL = NF.CDNOTAFISCAL and (NF.CdMovimentacao in (13,99,999,0013,0099,0999,1333,0033,9333,0933))

          LEFT JOIN CupoFisc CF on INF.CdCupomFiscal = CF.CdCupomFiscal ---LIGANDO A TABELA CUPOFISC NA CONSULTA---

          LEFT JOIN SaldoPro SP ON SP.CdFilial = CF.CdFilial and SP.CDPRODUTO = INF.CdProduto ---LIGANDO A TABELA SALDOPRO NA CONSULTA---

          LEFT JOIN Negocios NG ON NG.CdNegocio = CF.CdNegocio ---LIGANDO A TABELA NEGÓCIOS NA CONSULTA---

          LEFT JOIN Produtos P ON P.CdProduto = INF.CDPRODUTO

          LEFT JOIN Grupos G ON G.CdGrupoProduto = P.CdGrupoProduto

          LEFT JOIN Usuarios U ON U.CdUsuario = NG.CdUsuario

     WHERE      (INF.DtRegistro >= @DTINICIAL and INF.DtRegistro <= @DTFINAL)

                and (CF.InCancelado <> 1)

                and (SP.QtEstoqueMinimo < 10)--alterado por solicitação do robson em 17/10/11 as 11:00

               

    GO

    segunda-feira, 9 de abril de 2012 19:36

Todas as Respostas

  • Boa tarde Maikoko,

    Pelo seu select não deu muito para associar com o que você descreveu que precisa.

    1º - Como não conheço sua regra de negócio não saberia te dizer no certo, mais acho que há muitos "Left Join" nesta query, podendo assim retornar dados indesejados no seu resultado.

         como você disse que está "duplicando registros", você deve 1º identificar se realmente estes são registros duplicados ou apenas registros não agrupados.

    2º - Se você precisa do total dos produtos vendidos você deveria somar algum campo de valor e fazer o agrupamento pelos outros campos, sendo assim falat fazer a soma e este agrupamento ( comandos SUM e GROUP BY ).

          Esepro que estas dicas te ajude.

    Att,

    Adriano       

    terça-feira, 10 de abril de 2012 17:12