Problema com select

29/08/2004

Estou tentado fdazer esse select com um compnente Query mas está dando erro no primeiro AS. Quero utilizar a mesma tabalea 2 vezes:

select T.MDT_TurNumero, T2.MDT_TurNumero from
Transferencia join (ModTurma AS T) ON Tran_TurMod = T.Mdt_TurMod
join (ModTurma As T2) ON Tran_TurModN = T2.Mdt_TurMod

Se puder ajudar...
Agradeço!

JR


Jrjoliv2003

Respostas

29/08/2004

Vinicius2k

Colega,

Não entendi a lógica da consulta...
1) quais campos são de cada tabela? (mostre a estrutura, ou parte dela)
2) qual o resutado que vc quer da consulta?

Neste tópico tem um exemplo de como fazer um join entre a uma tabela com outra repetidas vezes : http://delphiforum.icft.com.br/forum/viewtopic.php?t=50835

Se o exemplo não lhe servir, poste novamente mais detalhes para tentarmos lhe ajudar...

T+


Responder Citar

29/08/2004

Jrjoliv2003

Obrigado pro ter repsondido mais uma vez!!

Bom,

tenho uma tabela que se chama ModTurma (módulos de uma turma) com os campos:
MDT_TurMod (campo chave)
MDT_Turma
MDT_Modulo

Para cada Turma pode ter vários módulos. Para cada combinação Turma/Modulo existe uma chave MDT_Turmod.

O aluno se inscreve em várias turmas, porém no BD fica registrado o MDT_TurMod.

Quando se faz uma Transferencia, fica registrado o MDT_TurMod (antigo) , MDT_TuModN (novo) e o codigo da transferencia na Tabela Transferencia.

Gostaria de fazer um select para saber o número da turma do MDT_Turmod (antigo) e o número da turma do MDT_TurModN (Novo) de cada transferencia.

Estou tentando isso ,mais não está dando certo:

select T.MDT_TurNumero, T2.MDT_TurNumero from
Transferencia join (ModTurma AS T) ON Tran_TurMod = T.Mdt_TurMod
join (ModTurma As T2) ON Tran_TurModN = T2.Mdt_TurMod

Valeu a força!!!

JR.


Responder Citar

29/08/2004

Vinicius2k

Bem, se eu tiver entendido corretamente, creio que o código seria este :
select T.*, 
       MT1.MDT_Turma as TurmaAnterior,
       MT2.MDT_Turma as TurmaAtual
from Transferencia T
  left join ModTurma MT1 on (Tran_Turmod  = MT1.MDT_TurMod)
  left join ModTurma MT2 on (Tran_TurmodN = MT2.MDT_TurMod)


É isto?

Espero ter ajudado...
T+


Responder Citar

29/08/2004

Jrjoliv2003

Coloquei seu código mas está com erro. Me retorna coluna não identificad em MT1.MDT_Turma...


select T.*,
MT1.MDT_Turma as TurmaAnterior,
MT2.MDT_Turma as TurmaAtual
from Transferencia T
left join ModTurma MT1 on (Tran_Turmod = MT1.MDT_TurMod)
left join ModTurma MT2 on (Tran_TurmodN = MT2.MDT_TurMod)

Valeu a força!!!

JR.


Responder Citar

30/08/2004

Vinicius2k

Bem, MDT_Turma é o nome que vc me passou para o campo quando postou a estrutura da tabela de ModTurma... mas observei seu código e parece q vc referencia este campo como MDT_TurNumero...
Qual seria o correto então?
Se for TurNumero, basta substituir pelo nome correto na instrução...

T+


Responder Citar

31/08/2004

Jrjoliv2003

Beleza!!! Resolvido!!!

select T.*,
MT1.MDT_TurNumero as TurmaAnterior,
MT2.MDT_TurNumero as TurmaAtual
from Transferencia T
left join ModTurma MT1 on (Tran_Turmod = MT1.MDT_TurMod)
left join ModTurma MT2 on (Tran_TurmodN = MT2.MDT_TurMod)

Obrigado mais uma vez!

JR.


Responder Citar