Montar consulta SQL
Olá!
Tendo a tabela clDependentes e clAfinidades, eu preciso retornar a Qtd de dependentes de um determinado funcionário cujo parentesco não seja igual a ('Cônjuge','Pai','Mãe'), mas quero todo os dependentes filhos cuja idade seja maior ou igual a 19 anos.
Elaborei a consulta abaixo, mas não tenho certeza se irá funcionar corretamente (vejam que no operador not in, eu coloco 'Filho(a)', e logo abaixo especifico que só quero retornar aqueles filhos cuja idade seja maior ou igual a 19 anos)
select count(clDep.ID)
from clDependentes clDep
inner join clAfinidades clAfi on (clDep.id_afinidade = clAfi.id_afinidade)
where clDep.id_visitante = 5
and clAfi.parentesco not in ('Cônjuge','Pai','Mãe','Filho(a)') or
(clAfi.parentesco = 'Filho(a)' and clDep.Idade >= 19 and clDep.id_visitante = 5)
Esta consulta deu certo, mas eu não sei exatamente o motivo dela ter funcionado, e isso me deixa com dúvidas.
Fiz a consulta dessa forma para ficar mais claro para quem for responder, mas é claro que eu poderia (e seria padrão) utilizar os IDs.
Estou postando esta dúvida para uma colega aqui do trabalho que não está conseguindo criar uma conta aqui no fórum imasters. Até eu tive dificuldades para criar o meu cadastro.
Isa
Discussão (7)
Carregando comentários...