COMANDO SQL SIMPLES - URGENTE

 Tópico anterior Próximo tópico Novo tópico

COMANDO SQL SIMPLES - URGENTE

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#484757 - 03/10/2018 13:40:07

ALVAROVB2009
GUARULHOS
Cadast. em:Maio/2009


Pessoal preciso trazer pelo menos o nome da empresa nesse comando, e isso não esta acontecendo
Existe a possibilidade de não ter um associado cadastrado dentro do filtro especificado, porém preciso trazer os dados da empresa

O comando left não esta fazendo a função que era para fazer, simplesmente não esta trazendo nenhuma informação

SELECT matricula, nomeassociado, nomeempr
from tbassociados a
left join tbempresas e on e.codempr = a.codempr
where e.codempr in (961)
and a.codassociado > 1000
group by nomeempr, matricula, nomeassociado

Nesse caso não quero que exiba os associados menores que 1000, e nessa empresa todos associados estão com o codassociado menor que 1000 e quero que traga o nome da empresa


Meu banco é Access, as tabelas estão com as chaves certinhas
Sei que é um comando fácil, uso sempre, porém não estou entendendo o porque não esta trazendo, fiz diversas alternativas e nada, estou com a cabeça quente e preciso de ajuda, pois posso estar esquecendo alguma coisa e deixando algo passar.
Justo hj resolveu estourar 3 problemas ao mesmo tempo Aff

Essa foram uma das tentativas
Não trouxe nada
from tbempresas e
left join tbassociados a on a.codempr = e.codempr
where e.codempr in (961)
and a.codassociado > 1000

nesse caso trouxe todos os associados
where e.codempr in (961)  or ( and a.codassociado > 1000 and a.codempr in (961))

Também não trouxe nada
from tbempresas e
left join tbassociados a on a.codempr = e.codempr
where e.codempr in (961)  and a.codassociado > 1000

Ele esta agindo como se fosse um comando do Inner join

Agradeço a todos desde já

Teoria é quando se sabe tudo, e nada funciona. Prática e quando tudo funciona e ninguém sabe porque.
"Aquele que quer aprender gosta que lhe digam quando esta errado;
só o tolo não gosta de ser corrigido -"Prov.12:1


Resposta escolhida #484759 - 03/10/2018 13:55:28

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Se você está usando um alias para cada uma das tabelas, deveria identificar também os campos.

SELECT a.matricula, a.nomeassociado, e.nomeempr

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#484762 - 03/10/2018 15:19:05

ALVAROVB2009
GUARULHOS
Cadast. em:Maio/2009


Kerplunk obrigado pelo retorno

Eu já tinha feito isso antes também, más acabei de refazer e continuou não trazendo nenhuma informação

Teoria é quando se sabe tudo, e nada funciona. Prática e quando tudo funciona e ninguém sabe porque.
"Aquele que quer aprender gosta que lhe digam quando esta errado;
só o tolo não gosta de ser corrigido -"Prov.12:1


#484763 - 03/10/2018 15:28:01

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Tenta com uma subquery, não é o mais recomendado, mas se seu problema é urgente...


_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#484764 - 03/10/2018 17:03:28

JABA
CABO FRIO
Cadast. em:Agosto/2005


inverta a ordem das tabelas como segue abaixo e veja se funciona:

SELECT matricula, nomeassociado, nomeempr
from tbempresas e
left join tbassociados a on e.codempr = a.codempr
where e.codempr in (961)
and a.codassociado > 1000
group by nomeempr, matricula, nomeassociado


_______________________________________________________________________________________________

Se a alma ou espírito são imateriais, como eles fazem para se localizarem quando o corpo está em movimento?



#484789 - 04/10/2018 15:00:45

ALVAROVB2009
GUARULHOS
Cadast. em:Maio/2009


Jaba obrigado pelo retorno

Más essa era uma das formas que tinha utilizado para tentar trazer o resultado.
Sinceramente não sei o pq não trouxe o que eu precisava, pois o comando estava certo

Utilizei a idéia do Kerplunk, não bem a idéia dele, más a idéia do que a idéia dele deu kkkk

Como eu estava todo perdido por causa dos problemas, não estava conseguindo pensar direito. Então quando ele deu a idéia da subquery, mesmo não sendo recomendado, isso meu deu uma outra idéia.
Como o que eu queria era para o crystal report e lá tinha uma subconsulta, então inverti ela, trouxe o que estava na sub para a consulta principal e o que estava na principal levei para a sub, pois na sub é certeza que a empresa existe e com isso caso tenha um associado acima de 1000, irá trazer também

Como eu estava com muita urgência, pois liberei a versão ontem mesmo para o cliente, foi assim mesmo e depois vou tentar descobrir o pq não trouxe a resposta que eu queria, mesmo o comando estando certo, pois se tivesse errado, com certeza o Kerplunk teria visto ou então algum outro membro

Agradeço pelas ajudas

Teoria é quando se sabe tudo, e nada funciona. Prática e quando tudo funciona e ninguém sabe porque.
"Aquele que quer aprender gosta que lhe digam quando esta errado;
só o tolo não gosta de ser corrigido -"Prov.12:1


 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por ALVAROVB2009 em 04/10/2018 15:00:56