laravel - 如何在 laravel 查询中使用 sum 和 groupBy
问题描述
我想在 Laravel 5.6 中对具有不同单位名称的采购表中的库存求和这是我的查询:
DB::select("select brand_name,unit_name, sum(now_stock) as stock from purchases where category_id = 2 group By(unit_name)");
当我在 mysql 中运行它时,它是好的,但是当我在 laravel 中使用它时,会显示一个错误。
我想放在 laravel 刀片文件中
1. brand_name ...Unit_name ...Stock
2. BSRM ... ........ 1.2 .... .. ..........25
3. KSRM..............1.5...................50
我该如何编写这个查询?
解决方案
利用,
$purchase = DB::table('purchases')
->where('category_id',2)
->select('brand_name','unit_name',DB::raw('sum(now_stock) as stock'))
->groupBy('unit_name')
->get();
如果您有一个名为Purchase用于购买表的模型,则使用,
$purchase = Purchase::where('category_id',2)
->select('brand_name','unit_name',DB::raw('sum(now_stock) as stock'))
->groupBy('unit_name')
->get();
您必须将其传递给您的刀片视图以便在那里访问它。为了那个原因,
return view('bladeviewname', ['purchases' => $purchase]);
在您看来,您可以使用like,
@foreach($purchases as $purchase)
{{ $purchase->brand_name }}
{{ $purchase->unit_name }}
{{ $purchase->stock }}
@endforeach
推荐阅读
- database - 我有一个关于功能依赖和违反第二范式的问题
- java - 如何在运行时在@POST RESTEasy 客户端方法中设置实体字段的@PartFilename?
- vue.js - 如何检查socket.io中是否存在套接字
- laravel - 我想一次上传 3 张图片时遇到编译错误(函数名称必须是字符串)
- python - 产品聊天机器人 v2
- python - 使用二分搜索返回在排序的值列表中可以多次出现的值的第一次出现的位置
- excel - 多重匹配多重返回excel公式
- javascript - tensorflow js:未捕获的错误:检查时出错:预期 conv2d_input 有 4 个维度,但得到了形状为 [28,28,1] 的数组
- material-ui - 在 Select [Material UI] 中更改所选项目的颜色
- c# - 如何将数据从字符串生成器值传递到 Excel 工作表