Agrupar dados na consulta em oracle
SELECT DISTINCT obter_nome_estabelecimento(b.cd_estabelecimento) estabelecimento,
TO_CHAR(a.DT_AGENDA,'dd/mm/yyyy') dia,
initcap(b.DS_CURTA) agenda,
tasy.obter_desc_espec_agenda(b.cd_especialidade) especialidade,
COUNT(DISTINCT a.nm_paciente) total_pacientes,
0 total_pacientes_atendidos
FROM tasy.agenda_consulta a,
tasy.agenda b
WHERE a.cd_agenda = b.cd_agenda
AND b.ie_situacao = 'A'
and trunc(a.dt_agenda) between :dt_inicial and :dt_final
and ((b.CD_ESTABELECIMENTO = :cd_estab) or (:cd_estab = 0))
AND a.nm_paciente IS NOT NULL
AND a.IE_STATUS_AGENDA <> 'C'
and a.cd_agenda = 7216
GROUP BY TO_CHAR(a.DT_AGENDA,'dd/mm/yyyy'),
b.ds_curta,
tasy.obter_desc_espec_agenda(b.cd_especialidade),
obter_nome_estabelecimento(b.cd_estabelecimento)
HAVING COUNT(DISTINCT a.nm_paciente) > :total_paciente
union all
SELECT DISTINCT obter_nome_estabelecimento(b.cd_estabelecimento) estabelecimento,
TO_CHAR(a.DT_AGENDA,'dd/mm/yyyy') dia,
initcap(b.DS_CURTA) agenda,
tasy.obter_desc_espec_agenda(b.cd_especialidade) especialidade,
0 atendidos,
COUNT(DISTINCT a.nm_paciente) total_pacientes_atendidos
FROM tasy.agenda_consulta a,
tasy.agenda b
WHERE a.cd_agenda = b.cd_agenda
AND b.ie_situacao = 'A'
and trunc(a.dt_agenda) between :dt_inicial and :dt_final
and ((b.CD_ESTABELECIMENTO = :cd_estab) or (:cd_estab = 0))
AND a.nm_paciente IS NOT NULL
AND a.IE_STATUS_AGENDA = 'E'
and a.cd_agenda = 7216
GROUP BY TO_CHAR(a.DT_AGENDA,'dd/mm/yyyy'),
b.ds_curta,
tasy.obter_desc_espec_agenda(b.cd_especialidade),
obter_nome_estabelecimento(b.cd_estabelecimento)
HAVING COUNT(DISTINCT a.nm_paciente) > :total_paciente
Está exibindo como resultado duas linhas. Como agrupar para exibir 1 linha com as colunas "total_pacientes" e "total_pacientes_atendidos"
Discussão (1)
Carregando comentários...