Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola pessoal venho atraves dessa solicitar uma ajuda de uma determinada consulta, no qual a mesma tem que verificar se os pacientes cadastrados compareceu no determinado mes.
Exemplo
JOAO TEVE NA CLINICA NO DIA 01-08-2011
JOAO NAO COMPARECEU NO MES 09
JOAO SO VEIO COMPARECER NO DIA 05-10-2011
MARIA TEVE NA CLINICA NO DIA 05-08-2011
MARIA NAO COMPARECEU NO MES 09
MARIA SO VEIO COMPARECER NO DIA 10-10-2011
BOM EU QUERIA FAZER UMA CONSULTA QUE TROUXESSE O PACIENTE JOAO E MARIA NO MES QUE ELES COMPARECEU A CLINICA.
EU FIZ UMA CONSULTA MAS A MESMA SEMPRE ESTA TRAZENDO VALOR ZERO
SEGUE
SELECT paciente, prontuario,data
FROM ort_tratamentos
WHERE NOT EXISTS (SELECT *
FROM ort_tratamentos
WHERE data >= '2011-09-01'
AND data <= '2011-09-30'
)
order by data
NO CASO EU ESTOU QUERENDO TRAZER OS PACIENTE QUE NAO COMPARECEU NO MES 09, MAS ESSA CONSULTA NAO ESTA FUNCIONANDO CORRETAMENTE.
OK ABRACO!
olá Mota, eu vi a sua explicação mas não entendi como eu encaixaria esse exemplo que você passou na minha consulta que mostrei no topico. OK
Se o objetivo é obter quem teve evento no ano/mês determinado basta testar se o ano/mês do evento é o mesmo ano/mês do parametro.
O objetivo é trazer os pacientes que nao compareceu no mes, ou seja não haverá registro desse paciente no mês.
Algo assim deve resolver.
SELECT paciente, prontuario,data
FROM ort_tratamentos
WHERE NOT EXISTS (
SELECT NULL
FROM ort_tratamentos
WHERE extract(year from data) = '2011' and
extract(year from month) = '09')
)esse exemplo até rodou mas o mysql esta retornando valor vazio
SELECT paciente, prontuario,data
FROM ort_tratamentos
WHERE NOT EXISTS (
SELECT NULL
FROM ort_tratamentos
WHERE extract(year from data) = '2011' and
extract(month from data) = '09')
order by data
Olá Motta, depois de muito teste acho que consegui fazer a bendita consulta.
SELECT nome
FROM pacientes
WHERE
(
SELECT COUNT( id )
FROM ort_tratamentos
WHERE prontuario = pacientes.prontuario
AND EXTRACT(MONTH FROM data ) = 9
and EXTRACT(YEAR FROM data )= 2011
) = 0
agora falta só testar na minha aplicação. ok obrigado pela ajuda!
Tente com :
... extract(year from data) = extract(year from pdata) and
extract(year from month) = extract(month from pdata) ...
Onde pdata seria o parametro de data de busca, não sei a síntaxe correta em MySql.