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

时间:2019-02-08 13:40:53

标签: mysql sql laravel laravel-5

寻找一个查询来选择行,直到特定列的总和达到一个值,我尝试了

    $type = Table::select("*",
                    DB::raw("(SELECT SUM(to_qt) FROM ordens
                                WHERE type = ".$request->type."
                                'soma')"))
            ->having('soma', '2')
            ->get();

但是显然这是非常错误的,我已经搜索了很多并找到了postgree解决方案,但是我不是查询专家,并且我无法使其适应于laravel,我所知道的就是我显然需要在另一个选择中进行选择,有人知道我该怎么做吗?

1 个答案:

答案 0 :(得分:1)

您可以尝试这个。

$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();