SELECT PROBLEMA NO DISTINCT

NEW10 04/10/2006 09:09:46
#175487
Ola Pessoal
Queria pedir a ajuda e colaboraçao de vcs a uma duvida no select usando o distinct.
Primeiro vou fala rdo procedimento tenho duas tabelas tbl1(filme) e tbl2(genero) queria mostrar todos os filmes que nao tenha genero para isso usei o left join blz deu certo.
Agora o problema e no distinct queria distinguir todos os registros iguais e n sei q to fazendo de errado eis o codigo:

SELECT DISTINCT F.genero, F.filme, G.registro, G.genero
FROM filme AS F LEFT JOIN Genero AS G ON P.registro=VHB.registro;

isto dai sao so um exemplo esta tabela nao sao as minhas coloquei so pra exemplificar.

Bom acho q e isso obrigado a todos




USUARIO.EXCLUIDOS 04/10/2006 09:16:28
#175489
Resposta escolhida
Fica um pouco dificil de simular sem as informações, mas acredito que daria certo isso:

SELECT DISTINCT F.genero, F.filme, G.registro, G.genero
FROM filme AS F LEFT JOIN Genero AS G ON P.registro=VHB.registro
GROUP BY F.genero, F.filme;

Ficaria mais fácil com alguns registros de exemplo e um exemplo de como está saindo com a query que vc construiu.

[]'s André Milaré
USUARIO.EXCLUIDOS 04/10/2006 09:45:25
#175499
NEW10,

Precisa de mais informações. Está meio confuso o que você precisa exatamente.

O comando DISTINCT seleciona registos onde os campos são distintos, ou seja, se neste cruzamento de tabelas ocorrer tiverem dois registros que tenham o nome FILME igual, mas uma das demais informações diferentes, o DISTINCT ententrer que são dois registros diferentes, além do mais, eu vi que você tem dois campos gnero, um em cada tabela. Não entendi a função disso, porque ter uma tabela de genero se a tabela de filme já tem isso????

Talvez a modelagem não esteja muito boa!!!

Qualquer coisa dá um toque!!!!


NEW10 04/10/2006 10:09:13
#175511
vlw pela dica Andre mais ainda n due muito certo
como vc disse vou fazer uma simulaçao com o quero msm

Quero selecionar todos os cadastros da tabela cadastro que tem exames e TAMBEM quem nao tenham exames na outra tabela de Exames!!

entao fiz um left join mais to tendo problema pra usar o distinct pois aparece varios registros repetidos pois um cadastro pode ter ate 5 exames por exemplo ae aparece assim na tabela:

tbl_cadastro as Cad e tbl_exame as Exa(exames)

Cad.cod Cad.nome Exa.Cod Exa.conta (contador de exames)
1 joao 1 1
1 joao 1 2
2 jose 2 1
2 jose 2 2
2 jose 2 3

e isso ae so q eu queria usar o distinct para nao repetir o numero 1 mostra so uma vez ou seja mostrar quando o contador for igual a MAX

o certo era pra mostra daas tabelas acima isso:
1 joao 1 2
2 jose 2 3

pois o contador de exames tem q ser Max ou seja o ultimo exame o mais atual
dai fiz assim mais nao esta mostrando distinguidos mostra os repetidos

SELECT DISTINCT Cad.cod, Cad.nome, Exa.cod, Exa.data, Max(Exa.contador) AS MaxDecontador, Exa.Resultado
FROM tbl_cadastro AS cad LEFT JOIN tbl_exames AS Exa ON Cad.cod = Exa.cod;
GROUP BY Cad.cod, Cad.nome, Exa.cod, Exa.data, Exa.resultado

Obrigado
USUARIO.EXCLUIDOS 04/10/2006 11:28:39
#175538
SELECT DISTINCT Cad.cod, Cad.nome, Exa.cod, Exa.data, Max(Exa.contador) AS MaxDecontador, Exa.Resultado 
FROM tbl_cadastro AS cad LEFT JOIN tbl_exames AS Exa ON Cad.cod = Exa.cod
WHERE Cad.Nome



Tente da forma acima, agrupando pelo nome.
Tópico encerrado , respostas não são mais permitidas