【问题标题】:Laravel query select rows till column sum < xLaravel 查询选择行直到列总和 < x
【发布时间】:2019-07-02 18:30:01
【问题描述】:

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

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

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

【问题讨论】:

  • 你可以做 DB::raw 并为此编写一个 mysql 函数或过程,然后访问它

标签: mysql sql laravel laravel-5


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

【讨论】:

  • 如果我的回答满意,请标记。感谢您的投票。
猜你喜欢
  • 2013-04-03
  • 1970-01-01
  • 2019-03-16
  • 1970-01-01
  • 2020-08-01
  • 2019-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多