我正在使用该模型类开发用于每天,每周和整体销售的Laravel应用程序。
模型
class Sales extends Model
{
protected $table = 'sales';
protected $fillable = [
'id',
'store',
'amount',
'created_at'
];
}
我想显示每日,每周和整体销售额。这应该基于商店并按商店分组。我已经在控制器下面编写了此代码,但是不知道如何完成它。
控制器
public function sales()
{
$billings = DB::table("sales")
->select("sales.store", DB::raw("SUM(sales.amount) as total_amount"))
->groupBy("sales.store")
->orderByRaw('sales.store ASC');
return view('report.sales');
}
日期是created_at
,它是DateTime。如何使我的代码包含每日,每周和总体销售额?我想要实现以下目标。
答案 0 :(得分:0)
在案例条件下使用总和可能会有所帮助。没有经过测试,但粗略地讲我会如何拟订它,检查它是否能使您进一步受益。
$billings = DB::table("sales")
->select(
"sales.store",
DB::raw("SUM(CASE WHEN created_at >= NOW() - INTERVAL 1 WEEK THEN amount ELSE 0 END) weekly_sales",
DB::raw("SUM(CASE WHEN created_at >= NOW() - INTERVAL 1 MONTH THEN amount ELSE 0 END) monthly_sales",
DB::raw("SUM(CASE WHEN created_at >= NOW() - INTERVAL 1 YEAR THEN amount ELSE 0 END) yearly_sales",
DB::raw("SUM(amount) total_sales")
)
->groupBy("sales.store")
->orderByRaw('sales.store ASC');