Обычно здесь используется метод UNION, противоположный выбранному вами.
Допустим, у вас есть таблица имен дней со значениями "понедельник", "вторник" ... "воскресенье" в поле name
.
SELECT DAYNAME(CreatedAt) AS TheDay, SUM(Amount) AS TheSum
FROM OrderTransactions
GROUP BY TheDay
UNION
SELECT `name`, 0 FROM daynames
WHERE daynames.name NOT IN (SELECT DISTINCT DAYNAME(CreatedAt) FROM OrderTransactions)
Если у вас нет функций даты, вам обычно не нужна таблица поиска по именам. В этом случае я не знаю ярлык, чтобы избежать его.