Bom dia a todos,
Estou fazendo um select grande no Sql 2000 que tem como base uma tabela, vamos chamá-la de tbl_Principal.
Meu problema é que eu uso outras tabelas para condicionar meu select. Só que estas tabelas adicionais não necessitam ter todos os campos que a tbl_Principal vai ter.
No caso, eu diria para fazer um left join, porém se eu coloco as minhas condições das tabelas secundárias dentro do left join, meu select vai retornar todos os valores, e se eu coloco dentro do where, ele vai me retornar apenas linhas que tem nesta tabela secundária. Exemplo:
A tabela principal tem meus IDs, e Nome.
1 Pedro
2 Marcelo
Uma tabela secundária tem NomePai e NomeMae por exemplo a partir do ID. No caso, Pedro não terá Pai e mãe.
2 paiMarcelo maeMarcelo
No meu caso, teremos pessoas sem mae e/ou pai, e se eu coloca-se como clausula do left join: nomePai = IsNull(@NomePai, '') and NomeMae = IsNull(@NomeMae, ''), ele irá me retornar todos os valores.
1 Pedro Null Null
2 Marcelo paiMarcelo maeMarcelo
E seu eu colocasse esta condição no meu where, ele só irá me retornar as pessoas que possuem pai e/ou mãe, deixando os sem parente fora, (no caso de @NomePai e @NomeMae serem null)
2 Marcelo paiMarcelo maeMarcelo
Alguem tem alguma idéia de como solucionar isto??
Agradeço desde já,
Pedro