1
resposta

[Dúvida] Faça como eu fiz: calculando as receitas e custos da empresa

Para colocar os meses em ordem inseri um case when, o que deixou meu código mais extenso e adicionou uma coluna que não necessariamente desejo visualizar. Há uma maneira mais simples de chegar no mesmo resultado?

SELECT 
case 
when mes = 'Janeiro' then 1
when mes = 'Fevereiro' then 2
when mes = 'Março' then 3
when mes = 'Abril' then 4
when mes = 'Maio' then 5
when mes = 'Junho' then 6
when mes = 'Julho' then 7
when mes = 'Agosto' then 8
when mes = 'Setembro' then 9
when mes = 'Outubro' then 10
when mes = 'Novembro' then 11
else 12 
end as ordem,
mes, 
(quantidade*precounitario) as receita, 
(quantidade*custounitario) as custo
from TabelaVendasMensais
order by ordem 

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Oi Gabrielle, tudo bem?

Uma alternativa mais concisa é utilizar a função FIELD (caso esteja usando MySQL) ou ARRAY_POSITION (caso esteja usando PostgreSQL) para ordenar os meses diretamente no ORDER BY. Aqui está um exemplo de como você pode fazer isso:

  • Usando MySQL:

    SELECT 
        mes, 
        (quantidade * precounitario) AS receita, 
        (quantidade * custounitario) AS custo
    FROM 
        TabelaVendasMensais
    ORDER BY 
        FIELD(mes, 'Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro');
    
  • Usando PostgreSQL:

    SELECT 
        mes, 
        (quantidade * precounitario) AS receita, 
        (quantidade * custounitario) AS custo
    FROM 
        TabelaVendasMensais
    ORDER BY 
        ARRAY_POSITION(ARRAY['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'], mes);
    

Essas abordagens permitem que você mantenha o código mais limpo e evite a criação de uma coluna extra apenas para ordenação.

Espero que isso ajude a simplificar sua consulta!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!