Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Salve salve galera,
mais uma vez venho a vocês, sábios guerreiros jedi´s para um script que está me atordoando a cada dia. vamos lá;
tenho uma tabela chamada pacientes deste modo:
codigo ------------- paciente -------------- situacao -------------- tipo
1 mario em tratamento orto
2 cleuza em tratamento orto
3 joao em tratamento orto+implante
4 ilda em tratamento clinica
e uma tabela financeiro desde modo:
data ------------- paciente -------------- pgto_man
2017-01-01 mario 1
2017-02-01 cleuza 1
2017-02-20 maria 0
Preciso gerar uma query que me tragam TODOS os pacientes de ORTO ou ORTO+IMPLANTE, que NÃO estão listados na tabela financeiro DENTRO do periodo selecionado.
ex: paciente João - Total = (1)
Até pensei que seria uma condicional tipo campo != campo, mas não funcionou....
segue meu script
SELECT p.situacao, p.tipo, p.codigo, f.paciente, f.data, f.unidade FROM pacientes p JOIN financeiro f ON p.codigo != f.paciente WHERE AND f.data BETWEEN '$inicio' AND '$termino' AND p.situacao='Em Tratamento' AND p.tratamento='ORTODONTIA' OR 'ORTO+IMPLANTE'
desde já agradeço irmãos!dei uma lida lá, acho que pode ser sim, mas não consegui montar a sintaxe, como é a primeira vez que uso estas funções estou meio perdido....
Publique o que você fez , idente a sql por favor.
Faça um left join ou not in...
Select p.* from pacientes p
where p.paciente not in ( select p.paciente from financeiro where data between '$inicio' and '$termino')
and p.situacao='Em Tratamento'
and p.tratamento in('ORTODONTIA','ORTO+IMPLANTE')
https://dev.mysql.com/doc/refman/5.7/en/exists-and-not-exists-subqueries.html
Veja se ajuda