[firebase-br] Select com 4 tabelas, exibindo coluna vazia....

Alexandre Sousa alexandre.dantas em yahoo.com.br
Qua Out 3 13:13:49 -03 2007


Ola,

Use left join ao inves de definir as tabelas na clausula from, assim:

Select  A.CURSO, A.SERIE, A.TURMA, A.MATRICULA, B.NOTA, C.FALTA, D.NOME
>From  TabelaB B
left join TabelaA A on (A.CURSO = B.CURSO) and (A.SERIE  =  B.SERIE) and 
(A.TURMA =  B.TURMA) and (A.MATRICULA =  B.MATRICULA)
left join TabelaC C on (C.CURSO =  B.CURSO) And (C.SERIE=  B.SERIE) and 
(C.TURMA =  B.TURMA)  and (C.MATRICULA =  B.MATRICULA)
left join TabelaD D on (A.REGISTRO =  D.REGISTRO)

Order By A.MATRICULA



----- Original Message ----- 
From: "Simone" <simone em mithsan.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Wednesday, October 03, 2007 1:19 PM
Subject: [firebase-br] Select com 4 tabelas, exibindo coluna vazia....


Boa tarde!

Gostaria de ajuda pra montagem de um Select, onde uso 4 tabelas, até aí, td
bem, o problema, é que preciso que mesmo que o registro não seja encontrado
em determinada tabela, ele exiba a coluna vazia (ou zerada), tem como?!?

Exemplo:
TabelaA - CURSO, SERIE, TURMA, MATRICULA, REGISTRO
TabelaB - CURSO, SERIE, TURMA, MATRICULA, NOTA
TabelaC - CURSO, SERIE, TURMA, MATRICULA, FALTA
TabelaD - REGISTRO, NOME

Select  A.CURSO, A.SERIE, A.TURMA, A.MATRICULA, B.NOTA, C.FALTA, D.NOME
>From  TabelaA A, TabelaB B, TabelaC C, TabelaD D
Where (A.CURSO             =  B.CURSO)           And
           (A.SERIE                =  B.SERIE)              And
           (A.TURMA             =  B.TURMA)          And
           (A.MATRICULA    =  B.MATRICULA) And
           (C.CURSO             =  B.CURSO)           And
           (C.SERIE                =  B.SERIE)              And
           (C.TURMA             =  B.TURMA)          And
           (C.MATRICULA    =  B.MATRICULA) And
           (A.REGISTRO        =  D.REGISTRO   )
Order By A.MATRICULA

O problema é que se por acaso o aluno de matricula "X"  não tiver lançamento
de Falta, por exemplo (TabelaC), ele não traz o registro....

Preciso que, mesmo que ele não encontre nota (TabelaB) ou Falta (TabelaC)
ele traga sempre o aluno (mas tem que ter lançamento em pelo menos em uma
duas tabelas (nota ou falta)
CURSO   SERIE   TURMA   MATRICULA   NOTA   FALTA  NOME
003          001        XXX        X301                   10,0         1
MARIA
003          001        XXX        X302                     9,0
JOSÉ
003          001        XXX        X301                                   2
PEDRO
003          001        XXX        X301                   10,0         1
JORGE

Tem como montar um Select assim?!?
Li sobre Select / Where / Join / Union....mas não encontrei nada parecido...
Se alguem tiver uma dica, pode me passar, por favor?
Desde jpa, obrigada!
Simone



______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa 





Mais detalhes sobre a lista de discussão lista