Одним из простых решений является объединение при загрузке нулевых записей (только 7, не обременительно), например:
SELECT d, sum(amount)
FROM
(
SELECT dayofweek(date) as d, amount
FROM m1pay_dashboard.transactions
where date > (DATE(NOW()) - INTERVAL 7 DAY)
UNION ALL
SELECT 1, 0
UNION ALL
SELECT 2, 0
...
UNION ALL
SELECT 7, 0
) x
group by d
Будучи равными нулю, они не будут участвовать в суммах, а будут давать ноль для тех дней, которые Недостаточно продаж
Если вы тоже хотите указать название дня, добавьте еще один столбец в верхний запрос и строку для всех профсоюзов, но помните о любых обязательствах по интернационализации / локализации: было бы неразумно Жесткий код Engli sh слов, если вы однажды запустите отчет на французской платформе - лучше оставить его только как номер дня и сделать так, чтобы передний конец сделал его именем в зависимости от перевода, даже если целевая страна считает день 1 воскресенье или понедельник