我正在尝试使用以下查询获取每日,每周,每月,每年和总体收入:
$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(“总和(在created_at = NOW()的情况下-间隔1天,然后以0的价格结束,0结束)daily_revenue”)
实际上,它应该返回当天的收入。它没有给我所需的结果。它只显示0
注意: 1. created_at为日期时间格式
答案 0 :(得分:0)
请注意,您在=
中使用的是直接比较... created_at = NOW() ...
,而不是>=
。因此,您将只匹配24小时前创建的收入报告记录。