Laravel - выпуск с ежедневным доходом - PullRequest
0 голосов
/ 01 июля 2019

Я пытаюсь получить дневной, недельный, ежемесячный, годовой и общий доход, используя запрос ниже:

$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

  1. Следует сгруппировать по каналам

1 Ответ

0 голосов
/ 01 июля 2019

Обратите внимание, что вы используете прямое сравнение = в ... created_at = NOW() ... вместо >=. Таким образом, вы будете сопоставлять только записи отчета о доходах, которые были созданы ровно 24 часа назад.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...