Я пытаюсь получить дневной, недельный, ежемесячный, годовой и общий доход, используя запрос ниже:
$revenues = DB::table("vw_revenue_report")
->select(
"vw_revenue_report.channel",
DB::raw("SUM(CASE WHEN created_at = NOW() - INTERVAL 1 DAY THEN amount ELSE 0 END) daily_revenue"),
DB::raw("SUM(CASE WHEN created_at >= NOW() - INTERVAL 1 WEEK THEN amount ELSE 0 END) weekly_revenue"),
DB::raw("SUM(CASE WHEN created_at >= NOW() - INTERVAL 1 MONTH THEN amount ELSE 0 END) monthly_revenue"),
DB::raw("SUM(CASE WHEN created_at >= NOW() - INTERVAL 1 YEAR THEN amount ELSE 0 END) yearly_revenue"),
DB::raw("SUM(vw_revenue_report.amount) total_revenue")
)
->groupBy("vw_revenue_report.channel")
->orderByRaw('vw_revenue_report.channel ASC')
->get();
У меня проблема с:
DB :: raw ("СУММА (СЛУЧАЙ, КОГДА КОГДА СОЗДАНО_СОВЕРШЕННО () () - ИНТЕРВАЛ 1 ДЕНЬ, ЧЕМ ЕЩЕ РАЗ 0 КОНЕЦ) daily_revenue")
deally, он должен вернуть доход за текущий день. Это не дает мне требуемый результат. Его просто отображает 0
Примечание:
1. создан_ в формате datetime
- Следует сгруппировать по каналам