Eu criei uma query pra trazer o número de todos atendimentos realizados por bairro, porem se o bairro não tiver nenhum atendimento realizado, é pra mesmo assim trazer o nome do bairro e o número zero, com essa query logo abaixo isso funciona:
select ungBairro.ung_descricao, count(atn.atn_id) from atn_atendimento atn
left join usr_usuario usr on atn.paciente_id = usr.usr_id
left join pss_pessoa pss on usr.pss_id = pss.pss_id
left join pen_pessoa_endereco pen on pss.pss_id = pen.pss_id
left join end_endereco ende on pen.end_id = ende.end_id
left join lgr_logradouro lgr on ende.lgr_id = lgr.lgr_id
right join ung_unidgeografica ungBairro on ungBairro.ung_id = lgr.ung_id
left join tpg_tipogeo tpgBairro on tpgBairro.tpg_id = ungBairro.tpg_id
where (tpgBairro.tpg_sigla is null or tpgBairro.tpg_sigla = 'BAIRRO')
group by ungBairro.ung_descricao
porem quando eu adiciono na clausula where um filtro por datas, a query traz somentes os bairros que tem atendimentos realizados:
select ungBairro.ung_descricao, count(atn.atn_id) from atn_atendimento atn
left join usr_usuario usr on atn.paciente_id = usr.usr_id
left join pss_pessoa pss on usr.pss_id = pss.pss_id
left join pen_pessoa_endereco pen on pss.pss_id = pen.pss_id
left join end_endereco ende on pen.end_id = ende.end_id
left join lgr_logradouro lgr on ende.lgr_id = lgr.lgr_id
right join ung_unidgeografica ungBairro on ungBairro.ung_id = lgr.ung_id
left join tpg_tipogeo tpgBairro on tpgBairro.tpg_id = ungBairro.tpg_id
where (tpgBairro.tpg_sigla is null or tpgBairro.tpg_sigla = 'BAIRRO')
and atn.data_hora_inicio >= '2003-01-01 00:00:00'
and atn.data_hora_inicio <= '2014-01-23 23:59:59'
group by ungBairro.ung_descricao
alguém aí me ajuda ?
desde já obrigado !