mysql - Laravel 查询选择行直到列总和 < x
问题描述
寻找一个查询来选择行,直到特定列的总和达到一个值,我试过了
$type = Table::select("*",
DB::raw("(SELECT SUM(to_qt) FROM ordens
WHERE type = ".$request->type."
'soma')"))
->having('soma', '2')
->get();
但显然这是非常错误的,我搜索了很多并找到了 postgree 解决方案,但我不是查询专家,我无法将其调整为 laravel,我所知道的是显然我需要做一个选择在另一个选择中,有人知道我该怎么做吗?
解决方案
你可以试试这个。
$type = DB::raw("SELECT SUM(to_qt) as to_qt_sum, column1, column2, column3 FROM ordens WHERE type = ".$request->type." having SUM(to_qt) = 2 group by column1, column2, column3")->get();
在选择和分组依据中添加您的列名。
如果您使用的是模型,那么您也可以使用以下方法
$type = Orden::selectRaw('SUM(to_qt) as to_qt_sum, column1, column2, column3')
->groupBy('column1', 'column2', 'column3')->having('to_qt', 2)
->get();