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
Distinct Com Inner Join
Started By keilachris, 17/11/2009, 23:11
1 reply to this topic
#1
Posted 17/11/2009, 23:11
#2
Posted 25/01/2010, 14:50
Olá, tentei reproduzir o mesmo para fazer alguns testes e tentativas.
Chegando ao seguinte script:
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?
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:
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)