查找datetime列中的总集合总和

时间:2018-02-11 09:50:42

标签: mysql laravel laravel-5

我的数据库结构如:

collected today  created_at              updated_at
200              2017-07-02 06:20:07     2017-07-02 06:34:19
200              2017-07-02 06:34:19     2017-07-02 06:34:19
400              2017-07-03 06:34:19     2017-07-03 06:34:19
100              2017-07-05 06:34:19     2017-07-05 06:34:19
50               2017-07-02 06:34:19     2017-07-02 06:34:19

我想在每个日期找到collect_today的总和(如果2017-07-02天有两个gather_today,即40 + 50 = 90应该显示日期), 查询应该返回

updated_at total_collection 
2017-07-02 600

我使用以下查询来访问数据。但它返回0虽然我在每个日期的数据库中都有价值。什么可能是以下查询的错误?

 $monthly_report = DB::table('transactions')
                ->groupBy(DB::raw('Date(transactions.updated_at)'))
                ->sum('transactions.collected_today');
                ->select('transactions.updated_at',DB::raw('sum(collected_today)')

2 个答案:

答案 0 :(得分:1)

试试这个

$data = DB::table("transactions")
    ->select('updated_at',DB::raw("SUM(collected_today) as sum"))
    ->groupBy(DB::raw('Date(updated_at)'))
    ->get()

答案 1 :(得分:1)

刚试过这个,它对我有用:

DB::table('transactions')
    ->selectRaw('updated_at, SUM(collected_today)')
    ->groupBy(DB::raw('Date(updated_at)'))
    ->get();