Ir para conteúdo
  • 0

Inner Join trazendo dados duplicados


Pergunta

  • Alunos
Postado

Olá pessoal, montei uma query que será minha fvendas com todos os dados necessários para uma análise que estou fazendo, porém, filtrando um período notei que as linhas estão duplicando e com isso, o valor total está muito diferente do real.

Podem me ajudar?

Segue a query abaixo e os primeiros resultados mostrando as duplicidades.

 

Desde já agradeço!

 

select 
    pv.IdPedidoDeVenda, 
    pv.DtEmissao, 
    pv.StPedidoDeVenda, 
    p.CdChamada as IdCliente, 
    pe.IdUF, 
    pvi.IdProduto,
    pvi.QtAtendida,
    pvi.VlUnitario,
    pvi.VlDescontoItem,
    pvi.VlDescontoRateado,
    pvi.VlFreteRateado,
    pvi.VlItem,
    op.NmOperacao 
    from dbo.PedidoDeVenda pv
inner join dbo.operacao op on pv.IdOperacao = op.idoperacao
inner join dbo.pessoa p on pv.IdPessoaCliente = p.IdPessoa
inner join dbo.PessoaEndereco pe on p.IdPessoa = pe.IdPessoa
inner join dbo.PedidoDeVendaItem pvi on pv.IdPedidoDeVenda = pvi.IdPedidoDeVenda
where pv.StPedidoDeVenda = 'T' and pv.DtEmissao between '01/08/2023' and '31/08/2023'

 

RESULTADO

 

IdPedidoDeVenda    DtEmissao    StPedidoDeVenda    IdCliente    IdUF    IdProduto    QtAtendida
00A0001DSQ    2023-08-01 00:00:00.000    T    1322    RJ    00A00000RD    30
00A0001DSQ    2023-08-01 00:00:00.000    T    1322    RJ    00A00000RD    30
00A0001DSW    2023-08-01 00:00:00.000    T    5380    PA    00A0001ZN6    4
00A0001DSW    2023-08-01 00:00:00.000    T    5380    PA    00A0001ZN7    3
00A0001DST    2023-08-01 00:00:00.000    T    8443    MG    00A00000VQ    100
00A0001DST    2023-08-01 00:00:00.000    T    8443    MG    00A00000VR    100
 

 

6 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
Postado
4 horas atrás, kleberfernandes disse:

Olá pessoal, montei uma query que será minha fvendas com todos os dados necessários para uma análise que estou fazendo, porém, filtrando um período notei que as linhas estão duplicando e com isso, o valor total está muito diferente do real.

Podem me ajudar?

Segue a query abaixo e os primeiros resultados mostrando as duplicidades.

 

Desde já agradeço!

 

select 
    pv.IdPedidoDeVenda, 
    pv.DtEmissao, 
    pv.StPedidoDeVenda, 
    p.CdChamada as IdCliente, 
    pe.IdUF, 
    pvi.IdProduto,
    pvi.QtAtendida,
    pvi.VlUnitario,
    pvi.VlDescontoItem,
    pvi.VlDescontoRateado,
    pvi.VlFreteRateado,
    pvi.VlItem,
    op.NmOperacao 
    from dbo.PedidoDeVenda pv
inner join dbo.operacao op on pv.IdOperacao = op.idoperacao
inner join dbo.pessoa p on pv.IdPessoaCliente = p.IdPessoa
inner join dbo.PessoaEndereco pe on p.IdPessoa = pe.IdPessoa
inner join dbo.PedidoDeVendaItem pvi on pv.IdPedidoDeVenda = pvi.IdPedidoDeVenda
where pv.StPedidoDeVenda = 'T' and pv.DtEmissao between '01/08/2023' and '31/08/2023'

 

RESULTADO

 

IdPedidoDeVenda    DtEmissao    StPedidoDeVenda    IdCliente    IdUF    IdProduto    QtAtendida
00A0001DSQ    2023-08-01 00:00:00.000    T    1322    RJ    00A00000RD    30
00A0001DSQ    2023-08-01 00:00:00.000    T    1322    RJ    00A00000RD    30
00A0001DSW    2023-08-01 00:00:00.000    T    5380    PA    00A0001ZN6    4
00A0001DSW    2023-08-01 00:00:00.000    T    5380    PA    00A0001ZN7    3
00A0001DST    2023-08-01 00:00:00.000    T    8443    MG    00A00000VQ    100
00A0001DST    2023-08-01 00:00:00.000    T    8443    MG    00A00000VR    100
 

 

Tente com distinct no select , SELECT DISTINCT e o resto da sua query.

  • 0
  • Alunos
Postado

Esses valores seus repetem sem fazer join?

Verifique pois ao fazer join em uma tabela se ela possuir duas vezes a mesma chave na tabela em que você está fazendo join o valor se repete!

13 horas atrás, kleberfernandes disse:

Olá pessoal, montei uma query que será minha fvendas com todos os dados necessários para uma análise que estou fazendo, porém, filtrando um período notei que as linhas estão duplicando e com isso, o valor total está muito diferente do real.

Podem me ajudar?

Segue a query abaixo e os primeiros resultados mostrando as duplicidades.

 

Desde já agradeço!

 

select 
    pv.IdPedidoDeVenda, 
    pv.DtEmissao, 
    pv.StPedidoDeVenda, 
    p.CdChamada as IdCliente, 
    pe.IdUF, 
    pvi.IdProduto,
    pvi.QtAtendida,
    pvi.VlUnitario,
    pvi.VlDescontoItem,
    pvi.VlDescontoRateado,
    pvi.VlFreteRateado,
    pvi.VlItem,
    op.NmOperacao 
    from dbo.PedidoDeVenda pv
inner join dbo.operacao op on pv.IdOperacao = op.idoperacao
inner join dbo.pessoa p on pv.IdPessoaCliente = p.IdPessoa
inner join dbo.PessoaEndereco pe on p.IdPessoa = pe.IdPessoa
inner join dbo.PedidoDeVendaItem pvi on pv.IdPedidoDeVenda = pvi.IdPedidoDeVenda
where pv.StPedidoDeVenda = 'T' and pv.DtEmissao between '01/08/2023' and '31/08/2023'

 

RESULTADO

 

IdPedidoDeVenda    DtEmissao    StPedidoDeVenda    IdCliente    IdUF    IdProduto    QtAtendida
00A0001DSQ    2023-08-01 00:00:00.000    T    1322    RJ    00A00000RD    30
00A0001DSQ    2023-08-01 00:00:00.000    T    1322    RJ    00A00000RD    30
00A0001DSW    2023-08-01 00:00:00.000    T    5380    PA    00A0001ZN6    4
00A0001DSW    2023-08-01 00:00:00.000    T    5380    PA    00A0001ZN7    3
00A0001DST    2023-08-01 00:00:00.000    T    8443    MG    00A00000VQ    100
00A0001DST    2023-08-01 00:00:00.000    T    8443    MG    00A00000VR    100
 

 

 

  • 0
  • Alunos
Postado
17 horas atrás, Ezequiel Pedreira disse:

Tente com distinct no select , SELECT DISTINCT e o resto da sua query.

@Ezequiel Pedreira obrigado pela ajuda, mas ao colocar o distinct no início da query, quando eu tenho vários pedidos feitos na mesma data, ele só consta um e o meu problema está nos produtos dentro do pedido. Os produtos estão vindo duplicados.

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...