Jump to content
Jonatas Provido

Distinct ainda retorna duplicidade

Recommended Posts

Pessoal estou mexendo em um relatório porem quando ele me retorna ele me traz ainda em duplicidade.

veja na imagem 

se aguem puder me dar uma luz. 

 

SELECT DISTINCT ITE.CODPROD,
       ITE.SEQUENCIA,
       PRO.DESCRPROD,
       ITE.AD_COMPLEMENTO,
       PAP.CODPROPARC,
       ITE.CONTROLE,
       ITE.USOPROD,
        (CASE
          WHEN VOA.CODPROD IS NULL THEN ITE.QTDNEG
          WHEN VOA.DIVIDEMULTIPLICA = 'D' THEN ITE.QTDNEG * VOA.QUANTIDADE
          ELSE ITE.QTDNEG / VOA.QUANTIDADE
        END) AS QTDNEG,
        (CASE
          WHEN VOA.CODPROD IS NULL THEN ITE.VLRUNIT
          WHEN VOA.DIVIDEMULTIPLICA = 'D' THEN ITE.VLRUNIT / VOA.QUANTIDADE
          ELSE ITE.VLRUNIT * VOA.QUANTIDADE
        END) AS VLRUNIT,
      ITE.CODVOL,
      ITE.VLRDESC,
      ITE.QTDNEG * ITE.VLRUNIT AS TOTALITEM,
      ITE.VLRTOT - ITE.VLRDESC AS TOTLIQ,
      (CASE WHEN ITE.DTINICIO IS NULL THEN
      CAB.DTPREVENT ELSE ITE.DTINICIO END) AS DTPREV,
      USU.NOMEUSU,
      ITE.VLRIPI,
      (ITE.VLRIPI / (ITE.VLRTOT - ITE.VLRDESC)) * 100 AS PERCIPI
FROM TGFITE ITE
     INNER JOIN TGFCAB CAB ON (CAB.NUNOTA = ITE.NUNOTA)
     INNER JOIN TGFPRO PRO ON(ITE.CODPROD = PRO.CODPROD)
     LEFT JOIN TSIUSU USU ON (USU.CODUSU = ITE.AD_CODUSU)
     LEFT JOIN TGFPAP PAP
     ON ITE.CODPROD = PAP.CODPROD
     AND CAB.CODPARC = PAP.CODPARC
     AND ITE.CODVOL = PAP.UNIDADEPARC
     LEFT JOIN TGFVOA VOA ON(
     VOA.CODPROD = ITE.CODPROD AND
     VOA.CODVOL = ITE.CODVOL AND
       ((ITE.CONTROLE IS NULL AND VOA.CONTROLE = ' ')
       OR (ITE.CONTROLE IS NOT NULL AND ITE.CONTROLE = VOA.CONTROLE))
                       )
      WHERE  CAB.NUNOTA = 55854 AND  ITE.SEQUENCIA > 0
ORDER BY ITE.SEQUENCIA

Capturar.JPG

Share this post


Link to post
Share on other sites

Teu sql tem mais colunas que a listagem.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By ramonjba
      Bom dia! Pessoal, estou muito precisando da ajuda dos Srs. Tenho uma tabela, onde a cada minuto, meu script insere dados referente a consulta SNMP de determinado equipamento. Tenho uma pagina, onde os dados que a consulta coletou diferente do dado atual, é mostrado na tabela. O que acontece é o seguinte, estou utilizando o GROUP BY para selecionar apenas os dados diferentes da coluna 'canalEquipamento', mas, o problema é que, se eu estiver com o Canal registrado na tabela em 5540, realizar a alteração para o 5500, e depois voltar para o 5540, minha consulta não retorna o dado duplicado. Não posso simplesmente mostrar todas as consultas na tabela, pois como eu disse, a inserção de dados na tabela é realizada a cada minuto, dessa forma, iria ter vários dados repetidos e uma consulta enorme. Então, o que eu preciso fazer, é que: a consulta retorne os dados , que o último não seja repetido, por exemplo: Tenho do registro 1 até 50, a coluna Canal está registrada em 5500, no registro 51 até o 500, o canal mudou para 5540, e do 501 até o 700, o canal voltou para o 5500. O que eu precisaria que a consulta retornasse, seria por exemplo:

      Consulta 1 - Canal 5500
      Consulta 51 - Canal 5540
      Consulta 501 - Canal 5500
       
      Segue a imagem do exemplo do problema atual, de como a query está retornando no momento (ela está listando apenas o primeiro registro do canal, se repetir o canal, ele não aparece mais).
      QUERY: SELECT ip_equipamento, canalEquipamento, lastSNMP FROM equipamentoSNMP WHERE idEquipamento='317' GROUP BY canalEquipamento ORDER BY idConsulta DESC
       

    • By tamabenetti
      AJUDAAAA
      Pessoal eu preciso da quantidade total de itens diferentes vendidos por cliente para cada vendedor.
       
      Eu tenho o seguinte:
      Vendedor |                     CLIENTE                                  |  PRODUTO                                 |  data_VENDA
      JOAO          |                    MERCADO  SORRISO            |                   PRESUNTO              |  01/07/2019
      JOAO          |                   PADARIA SONHO                     |                    PRESUNTO             | 03/07/2019
      JOAO          |                    SUPERCENTER                       |                      PRESUNTO             | 05/07/2019
      JOAO          |                    SUPERCENTER                       |                      PRESUNTO             |  10/07/2019
      LUIZ          |                    CONFEITARIA A                         |                     AÇUCAR                   |  15/07/2019
       
      PRECISO DESSE RESULTADO:
      Vendedor | Total clientes vendidos | total produtos diferentes vendidos POR CLIENTE
      JOAO          |                  3                        |                    3 *
      LUIZ             |                 1                       |                      1
       
      *O total é 3 porque eu preciso considerar a venda do produto por cliente, e não somente por vendedor.
       
      Quando eu utilizo o group by ele considera apenas o total de produtos vendidos por VENDEDOR, 
      e não considera a venda para clientes diferentes.
      SELECT distinct vendedor, count(distinct cliente), count(distinct produto) 
      FROM FATO_VENDAS a
      GROUP BY vendedor
       
      Por favor me ajudem!!!
    • By brunoogm
      Pessoal tenho uma tabela no php cujo resultado do select vindo do bd vem no seguinte formato:
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Bacon Cheddar                          1          60.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Chicken Club Sandwich            1          45.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Philly Cheese Steak                   1          50.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Smoke House                             1          55.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Stream Miller                              1          35.00
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       
      E eu gostaria de fazer um select para que nao repita os dados iguais e que a tabela viesse assim:
       
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
                                                                                                                                                      Bacon Cheddar                          1           60.00
                                                                                                                                                      Chicken Club Sandwich           1            45.00
      26    46        15/05/2019 13:57:25         Dinheiro                  Pendente                           Philly Cheese Steak                   1            50.00
                                                                                                                                                      Smoke House                             1            55.00
                                                                                                                                                      Stream Miller                              1            35.00
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       
      Alguem pode me ajudar, qual seria a melhor forma de fazer ?

      Essa tabela é gerada com um while no php entao se alguem saber uma outra maneira de montar isso aceito dicas.
       
      php: 
      -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      echo "<tr role='row' class='odd'>";
                                                      echo "<td class='sorting_1'>" .$resultado['CodigoComanda']. "</td>";
                                                      echo "<td>" .$resultado['Nome']."</td>";
                                                      echo "<td>" .$resultado['Quantidade']."</td>";
                                                      echo "<td>" .$resultado['Preco']."</td>";
                                                      echo "<td>" .$resultado['Metodos']."</td>";
                                                      echo "<td>" .$resultado['DataPedido']."</td>";
                                                      echo "<td>" .$resultado['Situacao']."</td>";
      echo "</tr>";
      -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       
      vlw pessoal
       
    • By brunoogm
      Pessoal tenho uma tabela no php cujo resultado do select vindo do bd vem no seguinte formato:
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Bacon Cheddar                          160.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Chicken Club Sandwich            145.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Philly Cheese Steak                   150.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Smoke House                             155.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Stream Miller                              135.00
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       
      E eu gostaria de fazer um select para que nao repita os dados iguais e que a tabela viesse assim:
       
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
                 46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Bacon Cheddar                          160.00
                                                                                                                                                      Chicken Club Sandwich            145.00
                                                                                                                                                      Philly Cheese Steak                   150.00
       Smoke House                             155.00
      26       46        15/05/2019 13:57:25         Dinheiro                  Pendente                        Stream Miller                              135.00
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       
    • By ZecaLoteiro
      Boa tarde,
       
      Estou tentando usar o DISTINCT em uma consulta LINQ porém não está funcionando.
      Implementei tanto a interface IEquatable quando a interface IEqualityComparer mas mesmo assim não é possível distinguir as instâncias.
       
      Alguém já passou por isso? Poderia ajudar?
      Desde já obrigado.
       
      Public Class Teste Implements IEquatable(Of Teste), IEqualityComparer(Of Teste) Private _Codigo As Integer Public Property Codigo() As Integer Get Return _Codigo End Get Set(ByVal value As Integer) _Codigo = value End Set End Property Public Sub New(id As Integer) Me.Codigo = id End Sub Public Overrides Function Equals(obj As Object) As Boolean Return DirectCast(obj, Teste).Codigo = Me.Codigo End Function Public Function Equals1(other As Teste) As Boolean Implements IEquatable(Of Teste).Equals Return Me.Codigo = other.Codigo End Function Public Function Equals2(x As Teste, y As Teste) As Boolean Implements IEqualityComparer(Of Teste).Equals Return x.Codigo = y.Codigo End Function Public Function GetHashCode1(obj As Teste) As Integer Implements IEqualityComparer(Of Teste).GetHashCode Return DirectCast(obj, Teste).Codigo End Function End Class Testando:
       
      Dim p1 As New Teste(78) Dim p2 As New Teste(78) Dim l As New List(Of Teste) From {p1, p2} MsgBox(l.Distinct().Count()) MsgBox(l.Distinct().ToList().Count)  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.