LEFT JOIN

16/05/2006

0

[quote:1a1ffb2e7c=´Moderação´][color=red:1a1ffb2e7c]Título editado por Massuda

Removido: ´AJUDA URGENTE´

Por favor, leia as [url=http://forum.clubedelphi.net/viewtopic.php?t=6689]Regras de Conduta[/url][/color:1a1ffb2e7c][/quote:1a1ffb2e7c]
tenho a tabela de contribuintes, que tem 20 contribuintes: vamos supor que 15 contribuintes tenham dívida na tabela ´divida´ ligados pelo ´contribuinteUID´.

na tabela divida existe o status da dívida, ou seja 1, 2, 3, 4,5 e 6
o statusdivida = 6 é fechada totalmente. é a única opção para quando uma dívida está fechada totalmente, se o status for diferente de 6 ou ainda não existir nada na tabela dívida para um determinado contribuinte, em algum momento ela não está fechada por completo.

por exemplo:

5 contribuintes estão com o status 1
5 contribuintes estão com o status 2
5 contribuintes estão com o status 6
os outros 5 contribuintes não estão na tabela divida, pois não possuem dívida (e deveria possuir, por isso assumo que é status NÃO FECHADO)

as opções do usuário é escolher o status 6, diferente de 6 ou ainda todos

caso a opção seja diferente de 6, ou seja não fechada totalmente, deverá listar todos os contribuintes que estão na tabela divida com status <> 6 e ainda os que não estão, pois nem geraram dívida, então não está fechada.

quando eu coloco no left join

contribuinte c left join divida d ON(c.contribuinteuid=d.contribuinteuid and d.statusdivida=6)

ele traz todos os 20, e ainda os status que são 1 e 2 ele joga pra null.

e também, caso ele escolha diferente de 6, deveria trazer somente 15, os 5 com status 1, os 5 com status 2 e os 5 que não estão na tabela dívida.


espero que expliquei bem..


Rodrigozim

Rodrigozim

Responder

APRENDA A PROGRAMAR DO ZERO AO PROFISSIONAL

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar