Wilker 3 Denunciar post Postado Outubro 26, 2006 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? Compartilhar este post Link para o post Compartilhar em outros sites
cassitos 2 Denunciar post Postado Outubro 28, 2006 tenta utilizar com left join. Compartilhar este post Link para o post Compartilhar em outros sites