Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

duquesimba

Group by colunas

Recommended Posts

Estou tentando acertar uma consulta mais não chego a solução. Tenho o seguinte banco

 

categorias:

 

id|vendedor|cod1|cod2

1|a|10|20

2|b|20|15

3|c|12|10

4|d|16|15

 

uso a seguinte query

 

"Select cod1,cod2 from categorias As c

Inner Join produtos AS p ON p.id = c.cod1

Inner Join produto AS ps ON ps.id = c.cod2

 

Group BY c.cod1, c.cod2"

 

Preciso que me retorne os valores de cod1 e cod2 sem repetir para popular uma combo

 

10 - 12 - 15 - 16 - 20

 

A combo esta ok, mais esta repetindo valores.

 

Já tentei o DISTINCT mais não retorna o desejado.

 

Alguem poderia dar uma luz.

 

Obrigado

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para que os joins ?

 

Não repetir a união dos 2 códigos ? Ou cada código distinto ?

 

Mas , tente ...

Select distinct cod from
(
Select cod1 cod from categorias
union all
Select cod2 from categorias
) virtual

Compartilhar este post


Link para o post
Compartilhar em outros sites

O seu GROUP BY não deixa os valores cod1 e cod2 repetirem na mesma linha, pois estão no mesmo registro.

 

Seu problema ainda não ficou claro para mim, pode ser mais específico?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Prezado Motta

 

Os joins são para pegar os nomes dos produtos pelos codigos encontrados em outra tabela

 

Mas se não se usa o nome qual a razão do join ?

Não ficou claro para mim o problema também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou tentar melhorar a pergunta:

 

tabelas

 

categorias

id|vendedor|cod1|cod2

1|a|10|20

2|b|20|15

3|c|12|10

4|d|16|15

 

 

Produtos

id|Nome

10|Panela

11|Escorredor

12|Pratos

13|Pano de prato

14|Garrafa

15|Colher

16|Garfo

20|Faca

 

Consulto categorias e faz inner em produtos. Resultado que preciso:

 

10-Panela

12 -Pratos

15-Colher

16-Garfo

20-Faca

 

Esta me retornando duplicado, no exemplo os cod 10-15-20 estão repetidos mais em colunas diferentes. Preciso filtrar as colunas cod1 e cod2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda não ficou claro para mim, cole a estrutura das tabelas envolvidas, cole também a consulta caso ela tenha sido alterada, também preciso que especifique melhor o objetivo, como assim filtrar cod1 e cod2?

Compartilhar este post


Link para o post
Compartilhar em outros sites

1) Se a Categoria não é exibida qual a razão do Join ?!

 

Um

select id , nome from produtos 

não resolve.?

 

2) A que se referem cod1 e cod2 de Categorias ?

Em geral estas modelagem forma do Forma Normal trazem problemas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

1) Se a Categoria não é exibida qual a razão do Join ?!

 

Um

select id , nome from produtos 

não resolve.?

 

2) A que se referem cod1 e cod2 de Categorias ?

Em geral estas modelagem forma do Forma Normal trazem problemas.

 

Só que ai me retorna todos os produtos, só quero que me retorne os produtos que estão na tabela categoria, nas colunas cod1 e cod2, sem que repita estes valores

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente

select id , nome 
from produtos 
where exists (select null
              from categorias
              where ((categorias.cod1 = produtos.id) 
                     or
                     (categorias.cod2 = produtos.id))

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.