SELECT PROBLEMA NO DISTINCT
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
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
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é
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é
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!!!!
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!!!!
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
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
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