Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Laravel查询选择行直到列总和<;x_Mysql_Sql_Laravel_Laravel 5 - Fatal编程技术网

Mysql Laravel查询选择行直到列总和<;x

Mysql Laravel查询选择行直到列总和<;x,mysql,sql,laravel,laravel-5,Mysql,Sql,Laravel,Laravel 5,我试图寻找一个查询来选择行,直到特定列的总和达到某个值为止 $type = Table::select("*", DB::raw("(SELECT SUM(to_qt) FROM ordens WHERE type = ".$request->type." 'soma')")) ->ha

我试图寻找一个查询来选择行,直到特定列的总和达到某个值为止

    $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();
在“选择和分组依据”中添加列名

如果您使用的是model,那么您也可以使用下面的方法

$type = Orden::selectRaw('SUM(to_qt) as to_qt_sum, column1, column2, column3')
        ->groupBy('column1', 'column2', 'column3')->having('to_qt', 2)
        ->get();

您可以使用DB::raw并为此编写一个mysql函数或过程,然后访问它。如果我的答案令人满意,请标记它。谢谢你的投票。