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

MySQL

Banco de Dados

05/04/2021

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

Curtidas 0

Melhor post

Emerson Nascimento

Emerson Nascimento

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
GOSTEI 1

Mais Respostas

Chromusmaster

Chromusmaster

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


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
GOSTEI 0
Dudubacteria

Dudubacteria

05/04/2021

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.
GOSTEI 0
POSTAR