Pessoal, estou tentando fazer um select no banco que me retorne todos os dias do mês, mesmo os que não tiverem informação, preenchendo com 0 ou null,
segue sql que fiz:
SELECT es.nome, COALESCE(EXTRACT(DAY FROM a.horario) ,0)as Dia, count(*) as qtd
FROM agenda a
LEFT JOIN escala e ON a.escala_id = e.id
LEFT JOIN especialidade es ON a.especialidade_codigo = es.codigo
WHERE (CAST(a.horario as DATE) >= '01/07/2019') AND (CAST(a.horario as date) <= '31/07/2019')
AND (a.especialidade_codigo = '42' OR a.especialidade_codigo = '43' OR a.especialidade_codigo = '44')
AND a.status_agenda = 'CONFIRMADO'
AND e.tipo_escala = 'CONSULTA'
AND a.encaminhamento_atendimento_id = 1
GROUP BY es.nome, Dia
ORDER BY Dia;
Pergunta
audreykarkoski
Boa tarde!
Pessoal, estou tentando fazer um select no banco que me retorne todos os dias do mês, mesmo os que não tiverem informação, preenchendo com 0 ou null,
segue sql que fiz:
SELECT es.nome, COALESCE(EXTRACT(DAY FROM a.horario) ,0)as Dia, count(*) as qtd
FROM agenda a
LEFT JOIN escala e ON a.escala_id = e.id
LEFT JOIN especialidade es ON a.especialidade_codigo = es.codigo
WHERE (CAST(a.horario as DATE) >= '01/07/2019') AND (CAST(a.horario as date) <= '31/07/2019')
AND (a.especialidade_codigo = '42' OR a.especialidade_codigo = '43' OR a.especialidade_codigo = '44')
AND a.status_agenda = 'CONFIRMADO'
AND e.tipo_escala = 'CONSULTA'
AND a.encaminhamento_atendimento_id = 1
GROUP BY es.nome, Dia
ORDER BY Dia;
Retorno do banco:
"nome" "dia" "qtd"
"CARDIOLOGIA" "1" "12"
"CARDIOLOGIA" "2" "7"
"CARDIOLOGIA" "4" "6"
"CARDIOLOGIA" "5" "6"
"CARDIOLOGIA" "11" "7"
"CARDIOLOGIA" "12" "7"
"CARDIOLOGIA" "15" "4"
"CARDIOLOGIA" "16" "6"
"CARDIOLOGIA" "18" "4"
"CARDIOLOGIA" "19" "6"
"CARDIOLOGIA" "22" "6"
"CARDIOLOGIA" "23" "6"
"CARDIOLOGIA" "25" "5"
"CARDIOLOGIA" "26" "7"
"CARDIOLOGIA" "27" "1"
"CARDIOLOGIA" "29" "6"
Grato
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.