Laravel从数据库中获取所有行记录的总和

时间:2018-12-28 13:29:36

标签: database laravel

看上面的图片。

我想要的是使用上述数据库创建每周数据表。 从过去一周开始(从今天到7天之前)。该表应包含dish_name,过去一周的quantity的总和,过去一周的price的总和,按dish_name分组。

任何人都可以为此提供解决方案。 (使用Laravel 5.7

$today = Carbon::now();
$one_week_ago = Carbon::now()->subWeeks(1);
$something = BillPaid::where('created_at', '>=', $one_week_ago)
        ->where('created_at', '<=', $today)
        ->select('dish_name', 'quantity')->groupBy('dish_name')->get();

问题是没有日期。我可以清楚地从上述查询中获得产品。那之后我不知道该怎么办。我附上了这张图片,过去一周来自2018-12-28 to 2018-12-21,因此该图片中的所有记录都应包括在内。

我想要做一个像这样的表

"vege rice" , 3 (quatation), 600(price) , 
"Chicken Fried rice", 9(quatation), 3150 (price)

1 个答案:

答案 0 :(得分:2)

尝试以下代码:

$today = Carbon::now();
$one_week_ago = Carbon::now()->subWeeks(1);
$something = BillPaid::selectRaw('dish_name,SUM(price) as totalPrice,SUM(quantity) as totalQuantity')
    ->whereBetween('created_at', [$one_week_ago, $today])
    ->groupBy('dish_name')->get();