Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.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 5.6中的两列求和_Mysql_Laravel 5_Eloquent - Fatal编程技术网

Mysql 如何对Laravel 5.6中的两列求和

Mysql 如何对Laravel 5.6中的两列求和,mysql,laravel-5,eloquent,Mysql,Laravel 5,Eloquent,我有一个SQL查询,我想把它转换成雄辩的。 我的问题是,我知道它是有效的: SELECT DISTICT(excavatorId), SUM(times_loaded), SUM(litres) FROM daily GROUP BY excavatorId; 并返回以下结果: +-------------+-------------------+-------------+ | excavatorId | sum(times_loaded) | sum(litres) | +--------

我有一个SQL查询,我想把它转换成雄辩的。 我的问题是,我知道它是有效的:

SELECT DISTICT(excavatorId), SUM(times_loaded), SUM(litres) FROM daily GROUP BY excavatorId;
并返回以下结果:

+-------------+-------------------+-------------+
| excavatorId | sum(times_loaded) | sum(litres) |
+-------------+-------------------+-------------+
|          55 |               179 |         168 |
|          60 |                50 |          50 |
+-------------+-------------------+-------------+
现在,在拉雷维尔,我尝试以下方法:

$result = DB::table('daily as d')
                ->select([
                    'excavatorId',
                    'times_loaded',
                    'litres'
                ])
              ->groupBy('excavatorId')
              ->where('date', $request->input('date'))
              ->sum('d.times_loaded', 'd.litres');
此查询仅返回值为“179”的字符串。 在Laravel中执行此操作并获得SQL查询结果的正确方法是什么

使用DB::raw()进行数据库操作,而不检索所有数据

    $result = DB::table('daily')
          ->select([
                'excavatorId',
                DB::raw("SUM(times_loaded) as total_times_loaded"),
                DB::raw("SUM(litres) as total_liters"),
            ])
          ->groupBy('excavatorId')
          ->where('date', $request->input('date'))
          ->get();
您不需要每天使用
作为d
,因为您没有连接两个表,因此可能需要一个表引用


请找到参考资料

太好了!非常感谢。但奇怪的是,这会返回以下内容:[{“挖掘机ID”:55,“总装载次数”:0,“总装载量”:0},{“挖掘机ID”:60,“总装载次数”:0,“总装载量”:0}]这些零很奇怪,我知道了。我必须删除SUM括号内的字符,比如:DB::raw(“SUM(times_-loaded)作为total_-times_-loaded”),而不是DB::raw(“SUM('times_-loaded')作为total_-times_-loaded”),好的,我会相应地编辑答案,以备将来参考