query complicada
galera, eh o seguinte, eu to precisando de uma query que funciona em 4 tabelas (usa 4 tabelas), usa da seguinte forma
1 tabela - atendimentoOnline_atendentes -> contem a situacao atual dos atendentes, para saber quem esta online
2 tabela - atendimentoOnline_chamadas -> contem as chamadas para os atendentes, pode ter varios ou nenhum registro, depende se esta tendo alguma chamada ou nao
3 tabela - usuarios -> usuarios do sistema (para atendentes)
4 tabela - departamentos -> lista dos departamentos
oque eu preciso é o seguinte, dado 1 departamento, eu preciso descobrir qual dos atendentes (daquele departamento) esta menos ocupado (ou livre), entao, para isso usando o ID do usuario eu preciso fazer uma contagem de chamadas ativas para cada atendente, e ver qual tem menos chamadas, eu cheguei nessa query aqui:
select atendimentoOnline_atendentes.userID as userIDfrom atendimentoOnline_atendentes inner join atendimentoOnline_chamadas inner join usuarios inner join departamentoswhere atendimentoOnline_atendentes.userID = usuarios.userID and usuarios.departamentoID = departamentos.departamentoID and departamentos.departamentoID = 1group by atendimentoOnline_chamadas.userIDorder by count(atendimentoOnline_chamadas.userID) asclimit 1
o problema dessa query, é que quando o atendente esta livre (sem chamadas) nada é encontrado na tabela das chamadas, entao o registro dele nao é retornado... ou seja, soh funciona se cada atendente tiver pelo menos 1 chamada...
como eu faco pra funcionar mesmo quando o atendente nao tiver nenhuma chamada?
Discussão (1)
Carregando comentários...