Laravel查询生成器- sum()方法问题


Laravel Query Builder - sum() method issue

我是laravel的新手,我对查询生成器有一些问题。我想建立的查询是这样的:

SELECT SUM(transactions.amount)
FROM transactions
JOIN categories
ON transactions.category_id == categories.id 
WHERE categories.kind == "1"

我试着建立这个,但它不工作,我不知道我错在哪里。

$purchases = DB::table('transactions')->sum('transactions.amount')
    ->join('categories', 'transactions.category_id', '=', 'categories.id')
    ->where('categories.kind', '=', 1)
    ->select('transactions.amount')
    ->get();

我想获得所有具有属性"kind"的事务。等于1,然后保存到一个变量中。下面是db结构:

事务( id ,名称,数量, category_id添加

分类(id,名称,种类)

当使用聚合方法时,不需要使用select()get()作为sum:

$purchases = DB::table('transactions')
    ->join('categories', 'transactions.category_id', '=', 'categories.id')
    ->where('categories.kind', '=', 1)
    ->sum('transactions.amount');

阅读更多:http://laravel.com/docs/5.0/queries#aggregates

如果需要在正常选择其他列的同时选择一列的SUM,则可以使用DB::raw方法对该列进行求和选择:

DB::table('table_name')
    ->select('column_str_1', 'column_str_2', DB::raw('SUM(column_int_1) AS sum_of_1'))
    ->get();

您可以在Laravel查询生成器/Eloquent中获得一些列,如下所示。

$data=Model::where('user_id','=',$id)->sum('movement');
return $data;

您可以在您的记录中添加任何条件。由于

MyModel::where('user_id', $_some_id)->sum('amount')