Jump to content


Photo

Distinct Com Inner Join


  • Faça o login para participar
1 reply to this topic

#1 keilachris

keilachris

    Turista

  • Usuários
  • 35 posts
  • Sexo:Não informado
  • Localidade:São Paulo

Posted 17/11/2009, 23:11

Boa noite a todos,

Tenho a seguinte instrução abaixo:
select distinct (tab_produtos.cod_produto), tab_pedido_item.cod_produto as cod_produto, tab_pedido_item.qtd_pedido, tab_pedido_item.cod_pedido, tab_produtos.produto, tab_produtos.vl_unitario, tab_produtos.vl_total, tab_produtos.imagem from tab_produtos inner join tab_pedido_item on tab_produtos.cod_produto=tab_pedido_item.cod_produto where tab_pedido_item.cod_pedido="&session("codped")&" and tab_produtos.cod_produto=tab_pedido_item.cod_produto and tab_produtos.excluido=false

A tabela tab_produtos possui alguns códigos de produto repetidos. O que preciso é que essa consulta traga somente um código dentro dos que repetem, mas mesmo usando o distinct não funciona. Já tentei também com group by e também nao deu certo.

Alguém tem alguma solução?

Obrigada,
Keila Yamashiro

#2 Renan L. Queiroz

Renan L. Queiroz

    Mestre

  • Usuários
  • 690 posts
  • Sexo:Masculino
  • Localidade:Brasilia - DF

Posted 25/01/2010, 14:50

Olá, tentei reproduzir o mesmo para fazer alguns testes e tentativas.

Chegando ao seguinte script:

declare @tab_produtos table(id_produto smallint, cod_produto smallint, produto char(50), vl_unitario float, vl_total float, imagem char(50), excluido char(30))
declare @tab_pedido_item table(id_pedido smallint, cod_pedido smallint, qtd_pedido smallint, cod_produto smallint)

insert into @tab_produtos values(1, 1, 'prod1', 1, 10, 'imagem1', 'false')
insert into @tab_produtos values(2, 1, 'prod2', 1, 10, 'imagem2', 'false')
insert into @tab_produtos values(3, 2, 'prod3', 5, 10, 'imagem3', 'false')
insert into @tab_produtos values(4, 3, 'prod4', 3, 9, 'imagem4', 'false')
insert into @tab_produtos values(5, 4, 'prod5', 2, 20, 'imagem5', 'false')

insert into @tab_pedido_item values(1, 1, 2, 1)
insert into @tab_pedido_item values(2, 2, 1, 1)
insert into @tab_pedido_item values(3, 3, 4, 2)
insert into @tab_pedido_item values(4, 4, 5, 3)


select distinct
tp.cod_produto as tp_cod_produto,
tpi.cod_produto as tpi_cod_produto,
tpi.qtd_pedido,
tpi.cod_pedido,
tp.produto,
tp.vl_unitario,
tp.vl_total,
tp.imagem

from @tab_produtos tp
inner join @tab_pedido_item tpi on tp.cod_produto = tpi.cod_produto

where tp.cod_produto = tpi.cod_produto
and tp.excluido = 'false'
and tpi.cod_pedido = 1

Por conta de não conseguir reproduzir o mesmo ambiente, fica meio difícil testar alguns comandos que possam vir a ajudar,
como por exemplo o COUNT(DISTINCT tp.cod_produto), retornando o somatório de registros para cada código de produto.
Tente com este comando, caso continue com problemas, poderia alterar os campos das tabelas e inserts para
que possa ter algo real, ou parecido com o que você tem, para que possa reproduzir e testar?

Edição feita por: Renan L. Queiroz, 25/01/2010, 15:04.

Especialidade: Desenvolvimento e Banco de Dados.


Este post lhe ajudou? Agradeça: Posted Image





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq