当前位置: 首页 > 知识库问答 >
问题:

laravel—从具有相同列值的另一列下具有类似列值的行中获取小计

锺离高丽
2023-03-14

DB有一个表,即记录。这些字段包括产品标识数量门店标识

我需要得到属于某个store\u id且具有相同product\u id值的行的数量总和。

例如,表中有值:(2,3,4),(2,1,5),( 1 2,2,4),然后我需要获得quantity以及第一行和第三行中其他列的总和。第二行也将出现在结果中。

让我们假设控制器名称为RecordController,模型名称为Record

我应该如何编写查询?

编辑:表格有以下值:(2,3,4),(2,1,5),( 1 2,2,4)

共有1个答案

路裕
2023-03-14

它可以使用单个查询来完成。

试试这个:-

DB::table('records')
    ->select('product_id',DB::raw('sum(quantity) as quantity'),'store_id')
    ->groupBy('product_id')
    ->groupBy('store_id')
    ->get();

说明:此查询将获取所有记录

更新:-

使用ORM:-

\App\YourModelName::select('product_id',DB::raw('sum(quantity) as quantity'),'store_id')
    ->groupBy('product_id')
    ->groupBy('store_id')
    ->get();

但无论如何,您都需要编写原始查询,不能使用默认的ORM功能来完成

 类似资料:
  • 我有一张像这样的桌子: 我试图设置一个sql查询语句,如果每一行的room值相同,则该语句将提取名称。 这是到目前为止我的代码,但它返回一个空列表: 尝试: 会有一个空名单? 我想得到一份清单 非常感谢。 更新E::: 我已经尝试将执行的查询替换为: 现在我得到一个错误: sqlite3。操作错误:靠近“选择”:语法错误

  • 问题内容: 在pandas中,给定一个DataFrame D: 当三列或更多列返回以下内容时,如何返回其所有列具有相同内容的行: 请注意,当所有值均为NaN时,它将跳过行。 如果这仅仅是两列,我通常会这样做,但是我不知道如何针对两列以上的DataFrames进行概括。 问题答案: 与Andy Hayden的答案类似,检查min是否等于max(然后所有行元素都是重复的):

  • 问题内容: 我有一个包含人姓,名,部门的SQLite数据库,我需要进行查询以向我显示具有相同名字和姓氏的任何人。我发现以下语句应该可以满足单个字段的要求,但是当我尝试使用它来提取所有具有相同姓氏的记录时,它似乎对我不起作用。我怎样才能做到这一点? 问题答案: 尝试: GROUP BY合并名称值相同的行。 HAVING删除不符合条件的组。 上面的查询将列出名字和姓氏,以及实际上有重复的所有名字/姓氏

  • 问题内容: 有以下选择: 我想获得具有最小值N_UM的行(仅一个),在这种情况下,其ID = 10(10 0)的行。 问题答案: 试试这个 -

  • 问题内容: 桌子: 我想获取UserId,每个UserId的max(Date)值。即,具有最新日期的每个UserId的值。有没有一种方法可以简单地在SQL中做到这一点?(最好是Oracle) 更新: 对于任何歧义,我们深表歉意:我需要获取所有UserIds。但是对于每个UserId,仅该用户具有最新日期的那一行。 问题答案: 这将检索其my_date列值等于该用户ID的my_date最大值的所有行

  • 问题内容: 因此,我有一个包含几个列表的列表,这些列表都首先包含三个字符串,然后是一个浮点数,例如: 如何制作一个返回最大值的函数(此处为9.1931)?我试过了 但这只是给我一个清单。 编辑:此外,以任何方式我可以获取值来自何处的索引?喜欢,来自哪个子列表? 问题答案: 循环浏览外部列表,然后选择每个子列表的最后一个元素: 最好将所有与函数相关的变量保留在范围内(将列表作为参数传递,并且不要通过