DISTINCT EM UMA INSTRUCAO SQL
Olá pessoal. Criei uma instrução SQL, onde desejo omitir códigos repetidos. Para isso, utilizo a cláusula DISTINCT. Mas não está funcionando. Não da erro, mas os dados não são filtrados. Eis a instrução:
Na instrução acima, desejo que o procedimentos.Codigo seja único. Como eu disse, não da erro, mas recebo procedimentos.Codigo repetidos. Mais cedo ou mais tarde detectarei o problema. Mas peço a ajuda de quem conseguir enxergar o problema antes.
SQLSource = [Ô]SELECT DISTINCT procedimentos.Codigo, procedimentos.Reg, procedimentos.Nome, procedimentos_vrpo.IDP, procedimentos_vrpo.IDTP, procedimentos_vrpo.Ok AS POk, (procedimentos_vrpo.Valor * [Ô] & IDValor & [Ô]) AS PValor, procedimentos_vrpo.Comissao, procedimentos_vrpo.ComissaoV, procedimentos_especialidades.IDE FROM procedimentos, procedimentos_vrpo,procedimentos_especialidades WHERE procedimentos.Codigo=procedimentos_vrpo.IDP AND procedimentos_especialidades.IDP=procedimentos.Codigo AND procedimentos_vrpo.IDTP=[Ô] & IDTabela & [Ô] [Ô] & Ordem
Na instrução acima, desejo que o procedimentos.Codigo seja único. Como eu disse, não da erro, mas recebo procedimentos.Codigo repetidos. Mais cedo ou mais tarde detectarei o problema. Mas peço a ajuda de quem conseguir enxergar o problema antes.
Da uma verificada pois deve ter sim algum campo diferente pois se tiver 1 campo <> dos registros repetidos que são visualizados ele ja não agrupara tudo.
Cria registros duplicados de propósito e testa.
é como o colega MADMAX falou: Se tiver alguma diferença em campo, os dados são retornados. O DISTINCT só funciona se os valores forem exatamente iguais.
[ ] 's
é como o colega MADMAX falou: Se tiver alguma diferença em campo, os dados são retornados. O DISTINCT só funciona se os valores forem exatamente iguais.
[ ] 's
HIDDEN,
O que eu consigo perceber é que vc talvez não esteja conseguindo fazer a instrução da forma correta. Parece que as chaves estrangeiras não estão relacionadas corretamente com os campos correspondentes.
Posta a definição das tabelas para que possamos lhe ajudar.
Aparentemente, as tabelas: procedimentos, procedimentos_vrpo,procedimentos_especialidades estão relacionadas pelos camos incorretos.
A mehor prática é vc utilizar INNER JOIN e LEFT OU RIGHT JOIN para garantir que trará todos os registros da tabela principal e os registros coincidentes das tabelas de apoio.
Consulte sobre essas expressões na net que tem muito exemplo.
O que eu consigo perceber é que vc talvez não esteja conseguindo fazer a instrução da forma correta. Parece que as chaves estrangeiras não estão relacionadas corretamente com os campos correspondentes.
Posta a definição das tabelas para que possamos lhe ajudar.
Aparentemente, as tabelas: procedimentos, procedimentos_vrpo,procedimentos_especialidades estão relacionadas pelos camos incorretos.
A mehor prática é vc utilizar INNER JOIN e LEFT OU RIGHT JOIN para garantir que trará todos os registros da tabela principal e os registros coincidentes das tabelas de apoio.
Consulte sobre essas expressões na net que tem muito exemplo.
Pelo tipo de consulta quer fiz, não terei linhas identicas. E sei que por isso não conseguirei o [Ô]filtro[Ô] desejado. Por isso levantei a questão, pois certamente há codificação para realizar o que eu quero.
RICART, fiz uma análise e as chaves estão relacionadas corretamente. E claro que INNER JOIN é mais eficaz. Ilustrei o código acima para facilitar. Bem de toda forma estou perto da solução. Assim que conseguir, posto aqui.
RICART, fiz uma análise e as chaves estão relacionadas corretamente. E claro que INNER JOIN é mais eficaz. Ilustrei o código acima para facilitar. Bem de toda forma estou perto da solução. Assim que conseguir, posto aqui.
Seu sistema está sendo desenvolvido para qual área?
se vc rodar sem distinct retorna alguma coisa?
é um sistema para uma faculdade de odontologia.
se vc rodar sem distinct retorna alguma coisa?
Retorna todos os dados, sem eliminar procedimentos.Codigo repetidos.
se vc rodar sem distinct retorna alguma coisa?
Retorna todos os dados, sem eliminar procedimentos.Codigo repetidos.
HIDDEN pega o resultado do select com distinct salva ele em xls ou outro formato ..anexa ele aqui .. deixa dar uma analisada nos dados ai posso te falar o porque de ele não estar agrupando ..... acho que so assim para saber o porque de não estar fazendo ... pois como disse distinct não tem segredo .. a não ser que todos os campo do select tem de ser iguais se não ele não agrupa .
Tópico encerrado , respostas não são mais permitidas