Falta pouco!

0 dias

0 horas

0 min

0 seg

1
resposta

[Dúvida] Quando escrevo minha query assim recebo a média dos valores, porém não os com valor null. Estaria errado?

SELECT e.Tipo, avg(p.valor) as MédiaPagamento
from TabelaEmprestimo e
join TabelaPagamentos p on p.id_emprestimo= e.id_emprestimo
where p.Status = 'Pago'
GROUP by e.Tipo
ORDER by e.Tipo desc;

1 resposta

Boa tarde! tenta fazer assim

SELECT
e.Tipo,
avg(p.valor) as MédiaPagamento
from
TabelaEmprestimo e
LEFT JOIN
TabelaPagamentos p on p.id_emprestimo = e.id_emprestimo AND p.Status = 'Pago'
GROUP BY
e.Tipo
ORDER BY
e.Tipo desc;

Esta nova versão, com o LEFT JOIN, mostra todos os tipos de empréstimo. Se um tipo não teve nenhum pagamento 'Pago' correspondente, ele ainda aparecerá na lista, mas com o valor NULL (nulo) na coluna da média de pagamento, em vez de ser simplesmente escondido.