AJUDA INNER JOIN 04 TABELAS

AZORSCA 25/03/2013 14:27:06
#421010
Galera Boa tarde

é o seguinte eu peguei um projeto para dar manutenção no codigo fonte dele.

E em uma das alterações eu preciso fazer um [Ô]milagre[Ô] Sql para conseguir buscar um dado.

é o Seguinte a base de dados é em Microsoft Access e NÂO possui nenhuma normalização, está uma bagunça!.

Tenho Quatro Tabelas

Sendo Elas

Tabela de Alunos (Ger015) (Campos Chave, Codigo = corresponde ao codigo do Aluno)
Tabela de Modalidades (Ger056) (Campos Chave = Codigo = Codigo da Modalidade e Nome = Descrição da Modalidade)
tabela de Turmas (Ger104) ( Campos Chave ControleMatricula = Codigo da Matricula (ger061)
Tabela de Matriculas (Ger061) (Campos Chave Código = Corresponde ao cóDigo do Aluno e Controle = Codigo da Tabela.)



Não há Chaves primárias e como disse não há normalidade comas regras.


Eu preciso fazer uma busca pela tabela de Alunos e saber, por exemplo, quais alunos Fazem a Modalidade de Musculação.

]
Poderiam me ajudar?



Grato.




Ja tentei assim e não deu certo.

SELECT ger015.codigo as CodAluno,ger061.codigo as CodMatAluno,
ger061.controle as CodMat, ger104.controleMatricula as ControleMat104,
ger104.ControleTurma as ControleTurma104, ger056.codigo as CodModalidade
FROM Ger015
INNER JOIN ger015 ON ger015.codigo = ger061.codigo
INNER JOIN ger061 ON ger061.controle= ger104.CodigoTurma
INNER JOIN ger104 ON ger104.CodigoTurma = ger056.codigo
Where Ger056.nome= [Ô]Musculação[Ô]


GUIMORAES 25/03/2013 14:48:48
#421014
SELECT ger015.codigo as CodAluno,ger061.codigo as CodMatAluno,
ger061.controle as CodMat, ger104.controleMatricula as ControleMat104,
ger104.ControleTurma as ControleTurma104, ger056.codigo as CodModalidade
FROM Ger015
INNER JOIN ger061 ON ger061.controle= ger104.CodigoTurma
INNER JOIN ger104 ON ger104.CodigoTurma = ger056.codigo
Where ger015.codigo = ger061.codigo and Ger056.nome= [Ô]Musculação[Ô]

Tenta assim.
AZORSCA 25/03/2013 15:00:24
#421016
GUIMORAES123, Muito obrigado mesmo, o que você me enviou deu um erro com descrição menor ..


Deu o seguinte erro:

Syntax Error (Missing Operator) in Query Expres. [ô] Ger061.controle=ger104.codigoTurma INNER JOIN ger104 on Ger104.CodigoTurma = Ger056.Codigo[ô]
Number 3075


FFCOUTO 25/03/2013 19:05:25
#421031
Como você está usando o Access, sugiro usar o construtor de consultas, pois agiliza muito o processo. Outra coisas os INNER JOIN no Access devem estar entre parênteses.
CLAUDINEIPF 26/03/2013 09:29:04
#421045
Resposta escolhida
Eu faço assim, crio uma consulta no access depois clico com o botão direito do mouse e escolho [Ô]Modo SQL[Ô], ai vc copia e cola a instrução sql para seu projeto. Aquele jeito que vc fez não funciona no access, pois ele coloca parenteses em cada inner join, por isso o jeito mais facil é esse que te falei, se vc quiser vc pode acrescentar manualmente uma clausula [Ô]WHERE[Ô] depois, para atender sua necessidade.

Espero ter ajudado,

Claudinei Perazza
Tópico encerrado , respostas não são mais permitidas