Usuário com melhor resposta
Mostrar registros com left join

Pergunta
-
Pessoal, bom dia.
Eu preciso fazer um select que mostre o valor total de corridas de um motorista e o numero de OSs no mes corrente. Porém, caso o motorista não tenha feito nenhuma corrida, preciso mostra-lo mesmo assim, como NULO ou 0.
Tentei fazer desta forma, porém, não está mostrando os motoristas que não tiveram corrida em junho:
select os.motorista, m.nomeusual, sum(os.valor), count(os.id) from jump.ordensservicos os left join jump.motoristas m on os.motorista = m.id where MONTH(diahora) = MONTH(GETDATE()) and m.excluido = 0 group by os.motorista, m.nomeusual
Obrigado!
Leonardo D'Amato
Leonardo D'Amato
Respostas
-
Bom dia,
Leonardo, experimente dessa forma:
select m.id, m.nomeusual, sum(os.valor), count(os.id) from jump.motoristas m left join jump.ordensservicos os on os.motorista = m.id and MONTH(diahora) = MONTH(GETDATE()) where m.excluido = 0 group by m.id, m.nomeusual
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Leonardo N. D'Amato quinta-feira, 16 de junho de 2016 13:23
Todas as Respostas
-
Bom dia Leonardo
Vc chegou a verificar se o campo esta nulo ? Se estiver tenta o is null !
select os.motorista, m.nomeusual, sum(os.valor), count(os.id) from jump.ordensservicos os left join jump.motoristas m on os.motorista = m.id where MONTH(diahora) = MONTH(GETDATE()) and m.excluido = 0 or m.excluido is null group by os.motorista, m.nomeusual
-
Bom dia,
Leonardo, experimente dessa forma:
select m.id, m.nomeusual, sum(os.valor), count(os.id) from jump.motoristas m left join jump.ordensservicos os on os.motorista = m.id and MONTH(diahora) = MONTH(GETDATE()) where m.excluido = 0 group by m.id, m.nomeusual
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Leonardo N. D'Amato quinta-feira, 16 de junho de 2016 13:23
-