【问题标题】:Sum in laravel db query在 laravel 数据库查询中求和
【发布时间】: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 from pick_list_detail 内部连接 sale_invoices pick_list_detail.sale_invoice_id = sale_invoices.id 内连接 sale_invoice_detail on sale_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 错误添加

标签: laravel laravel-5.4


【解决方案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();

原始查询是我的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-04
    • 2016-05-25
    • 2021-05-09
    • 2020-06-06
    • 1970-01-01
    • 1970-01-01
    • 2017-01-12
    相关资源
    最近更新 更多