MySQL - Retornar soma de valores por intervalo de dias da semana

05/04/2021

0

Tenho uma Tabela chamada "VENDAS" com os seguintes atributos:

id_venda INTEGER AUTO_INCREMENT PRIMARY KEY
valor REAL NOT NULL
data DATETIME NOT NULL


Eu quero retornar em MySQL o total de vendas ocorridos durante 1 semana, entre o dia atual até seis dias atrás.

Ficando mais ou menos assim:

SEMANA              TOTAL DE VENDIDO
segunda                250.00
domingo                430.00
sábado                  160.50
sexta                  300.03
quinta                 300.03
quarta                 300.03
terça                   300.03
Dudubacteria

Dudubacteria

Responder

Post mais votado

05/04/2021

algo assim:
select
   date_format(DATA, '%W') SEMANA,
   coalesce(sum(TOTAL),0) TOTAL
from
   VENDAS
where
   DATA between CURDATE()-6 and CURDATE()
group by
   date(DATA)
order by
   DATA

Emerson Nascimento

Emerson Nascimento
Responder

Mais Posts

05/04/2021

Chromusmaster

algo assim:
select
   date_format(DATA, '%W') SEMANA,
   coalesce(sum(TOTAL),0) TOTAL
from
   VENDAS
where
   DATA between CURDATE()-6 and CURDATE()
group by
   date(DATA)
order by
   DATA


Você vai precisar pivotar os resultados com base em um campo "chave" do seu select. Dê uma olhada nesse link:
https://stackoverflow.com/questions/7674786/how-can-i-return-pivot-table-output-in-mysql
Responder

05/04/2021

Dudubacteria

Muito bom também amigo, porém, assim como o outro post que você me ajudou, ambos não estão retornando o valor zero quando não tiver nenhuma venda realizada naquele dia.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar