在 laravel 数据库查询中求和
Posted
技术标签:
【中文标题】在 laravel 数据库查询中求和【英文标题】:Sum in laravel db query 【发布时间】:2018-07-07 17:29:53 【问题描述】:我在使用join时需要得到ProductQTY groupBy ProductID的总和,使用db::raw
时总是出错,附上我的代码
$pick_list_items = DB::table('pick_list_detail')
->where('pick_list_detail.pick_list_id',$id)
->join('sale_invoices', 'pick_list_detail.sale_invoice_id','=','sale_invoices.id')
->join('sale_invoice_detail', 'sale_invoice_detail.sale_invoice_id','=','pick_list_detail.sale_invoice_id')
->select(['pick_list_detail.sale_invoice_id', 'sale_invoice_detail.product_id', 'sale_invoice_detail.product_qty', 'sale_invoice_detail.uom', 'sale_invoice_detail.uom_factor'])
->sum('sale_invoice_detail.product_qty')
->groupBy('sale_invoice_detail.product_id')
->get();
我正在使用 laravel 5.4
这是错误
(2/2) 查询异常 SQLSTATE[42000]:语法错误或访问冲突:1055 'fdis.pick_list_detail.sale_invoice_id' 不在 GROUP BY 中(SQL:选择
pick_list_detail
.sale_invoice_id
,sale_invoice_detail
.product_id
,sale_invoice_detail
.product_qty
,sale_invoice_detail
.uom
,sale_invoice_detail
.uom_factor
frompick_list_detail
内部连接sale_invoices
pick_list_detail
.sale_invoice_id
=sale_invoices
.id
内连接sale_invoice_detail
onsale_invoice_detail
.sale_invoice_id
=pick_list_detail
.sale_invoice_id
在哪里pick_list_detail
.pick_list_id
= 1 组sale_invoice_detail
.product_id
)
【问题讨论】:
你的错误是什么 请提供一些相关代码 @Giovanni 错误已附加 @MahdiYounesi 错误添加 【参考方案1】: $sale_invoices = DB::table('pick_list_detail')
->select(DB::raw('sum(sale_invoice_detail.product_qty) as si_count, pick_list_detail.pick_list_id , sale_invoice_detail.product_id , sale_invoice_detail.uom, sale_invoice_detail.uom_factor '))
->where('pick_list_detail.pick_list_id',$id)
->join('sale_invoices', 'pick_list_detail.sale_invoice_id','=','sale_invoices.id')
->join('sale_invoice_detail', 'sale_invoice_detail.sale_invoice_id','=','pick_list_detail.sale_invoice_id')
->groupBy('pick_list_detail.pick_list_id')
->groupBy('sale_invoice_detail.product_id')
->groupBy('sale_invoice_detail.uom')
->groupBy('sale_invoice_detail.uom_factor')
->get();
原始查询是我的解决方案。
【讨论】:
以上是关于在 laravel 数据库查询中求和的主要内容,如果未能解决你的问题,请参考以下文章