我的表结构如下

date        seller  unit    price   total
05-06-17    abc     14      700     9800
05-06-17    pqr     12      600     7200
05-06-17    abc     10      520     5200
06-06-17    abc     10      600     6000
06-06-17    pqr     15      520     7800
06-06-17    pqr     16      520     8320

我需要像这样获取记录
1) 'date' = '05-06-2017', 'seller' = 'abc', 'total' = '15000'
2) 'date' = '05-06-2017', 'seller' = 'pqr', 'total' = '7200'
3) 'date' = '06-06-2017', 'seller' = 'abc', 'total' = '6000'
4) 'date' = '06-06-2017', 'seller' = 'pqr', 'total' = '16120'

我需要从日期数据库中获取数据。 seller abcdate的表中有两个条目05-06-2017,因此我需要当天的total作为seller abc以及pqr相同的东西,所有date的第二个seller

最佳答案

每当我们需要在最终输出中将具有相同数据的多行合并在一起时,我们就使用 mySQL 的功能按分组。

因此,在您的情况下,您可以使用laravel查询构建器以这种方式进行操作。

 DB::table('orders')->select('date', 'seller', DB::raw('SUM(total) as total'))
    ->groupBy('seller')
    ->groupBy('date')
    ->get();

说明
DB::select('orders')->select('date', 'seller', DB::raw('SUM(total) as total'))将查询数据库中的orders表,然后获取我们提供的列,即date, seller and sum of total column as total->groupBy('seller')->groupBy('date')它将在同一日期合并同一卖方的多个记录。
->get();我们将从查询中获取数据。

07-27 14:07