Laravel-每日收入问题

时间:2019-07-01 13:57:53

标签: laravel eloquent

我正在尝试使用以下查询获取每日,每周,每月,每年和总体收入:

$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为日期时间格式

  1. 应按渠道分组

1 个答案:

答案 0 :(得分:0)

请注意,您在=中使用的是直接比较... created_at = NOW() ...,而不是>=。因此,您将只匹配24小时前创建的收入报告记录。