AJUDA INNER JOIN 04 TABELAS
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[Ô]
é 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[Ô]
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.
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.
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
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
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.
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
Espero ter ajudado,
Claudinei Perazza
Tópico encerrado , respostas não são mais permitidas