Fórum Select Distinct meio estranho mas funcionou... #294864

08/09/2005

0

Olá Galera, é o seguinte. Eu precisava de um SQL que me retorna-se somente os registros de uma tabela que tivesse registros em outra tabela, por exemplo, vendedores que tivessem vendas, porém sem repetição de vendedores. Eu tentei de várias formas, com join e tal, o problema é que sempre repetia o nome do vendedor. Ai procurei aqui no fórum e achei um código que deu certo, mas eu achei ele tão estranho, não sei, mas pode ser que ele fique meio pesado com muito registros, vejam ai e falem o que acham ou se tem outra forma de fazer esse select que preciso:
Obrigado
SELECT DISTINCT Vendedores.CODIGO_VENDEDOR, Vendedores.NOME_VENDEDOR FROM Vendedores WHERE Vendedores.CODIGO_VENDEDOR IN (SELECT DISTINCT Vendas.CODIGO_VENDEDOR FROM Vendas) ORDER BY VENDEDORES.NOME_VENDEDOR

Ps. Esse Segundo DISTINCT foi posto por minha conta, não sei se fiz errado ou certo, mas pensei em minimizar o número de registros nesse select.


Lucianobarreto

Lucianobarreto

Responder

Posts

08/09/2005

Gandalf.nho

Assim não funciona?

SELECT Vendedores.CODIGO_VENDEDOR, Vendedores.NOME_VENDEDOR 
FROM Vendedores INNER JOIN Vendas 
ON Vendedores.CODIGO_VENDEDOR = Vendas.CODIGO_VENDEDOR 
GROUP BY Vendedores.CODIGO_VENDEDOR, Vendedores.NOME_VENDEDOR
ORDER BY Vendedores.NOME_VENDEDOR



Responder

Gostei + 0

08/09/2005

Lucianobarreto

Funciona também!
Valeu!!!
Mas me diz uma coisa, o que eu pensava sobre o codigo que coloquei lá está certo? Ele ficaria meio pesado?


Responder

Gostei + 0

08/09/2005

Lucianobarreto

Bom.. testei aqui no ISQLTOOl e deu certo, porém quando eu coloco no Delphi e tento executar ele dá o seguinte erro:

[b:43f3479b93]INVALID EXPRESSION IN THE SELECT LIST(NOT CONTAINED IN EITHER AN AGGREGATE FUNCTION OR THE GROUP BY CLAUSE)[/b:43f3479b93]

Um dos codigos que eu estava tentando dava esse mesmo erro...
O que pode ser?

Estou usando Banco FB e ZEOSLIB...


Responder

Gostei + 0

08/09/2005

Gandalf.nho

A SQL original que vc postou certamente seria mais pesada por usar uma select para alimentar a cláusula WHERE. Quanto ao erro que vc postou, foi com o meu exemplo tb? Os nomes das suas tabelas e campos estão em maiúsculas ou não?


Responder

Gostei + 0

08/09/2005

Lucianobarreto

O seu código no ISQL funcionou legal. Sobre as Maiusculas e Minusculas eu conferi e está correto.
Pode ser algo da biblioteca? Tipo a Zeos nao dar suporte a isso?


Responder

Gostei + 0

08/09/2005

Martins

O seu código no ISQL funcionou legal. Sobre as Maiusculas e Minusculas eu conferi e está correto. Pode ser algo da biblioteca? Tipo a Zeos nao dar suporte a isso?

Pode ser, testei o código da gandalf.nho no ISQL e funfou aqui tb, vc usa os componentes ZeosLib para acesso ?

Não utilizo esses comp. não, nunca precisei.


Responder

Gostei + 0

08/09/2005

Lucianobarreto

Então, o codigo cachorro que eu coloquei lá com começo está certo aqui.. o codigo que ela passou nao deu certo... mas tudo bem.. vou vendo ao que dá.. mas se tiverem algo mais me falem...


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar