2017-03-03 48 views
0

試圖讓我的表中的一個int字段的總和應該很容易,不幸的是它不是因爲我使用Laravel,MySQL或Excel而得到不同的結果。Laravel Sum列數據庫雄辯

Laravel 5.4給我:

Table::sum('field_name'); 

MySQL的給我:

Select sum(field_name) from table; 

而且從Excel工作表導入到數據庫之前的數據: 總和即爲我

有什麼想法?我試圖在執行總和之前將其轉換爲整數,但它不起作用。 所有的數字都很大,但不包含逗號或點。值的

例子我來總結:(含有時空單元格)

17906774 
99630157 
28581131 

159551532 
20312892 
668928885 
+0

如果你做什麼你laravel中所有行的全部總和? – ak93

回答

1
$query = YourModel::query(); 
$query->withCount([ 
'activity AS yoursum' => function ($query) { 
     $query->select(DB::raw("SUM(amount_total) as paidsum"))->where('status', 'paid'); 
    } 
]); 
+0

感謝您使用此代碼段,這可能會提供一些有限的即時幫助。通過展示*爲什麼*這是一個很好的解決方案,並且使它對未來的讀者更有用,一個正確的解釋[將大大提高](// meta.stackexchange.com/q/114762)其長期價值其他類似的問題。請[編輯]你的答案以添加一些解釋,包括你所做的假設。 –

1

$result = DB::table(tablename) 
->selectRaw('sum(column)') 
->get(); 

嘗試,如果它仍然給你錯誤的結果,也許是等待別人給你更好的答案。這是我所能想到的。

+0

這給了我與SQL查詢相同的結果:從表中選擇sum(field_name); – Andrew

0

可以使用laravel聚合函數SUM爲:

$result = DB::table('table_name') 
       ->select(DB::raw('SUM(field_name) as total_field_name')) 
       ->get(); 

有關詳細信息,你可以遵循:

https://laravel.com/docs/5.4/queries

感謝

+0

不幸的是並沒有改變結果。 – Andrew