尝试在我的一个表中获取int字段的总和应该非常简单,不幸的是,不管我使用Laravel,MySQL还是Excel都会得到不同的结果。
Laravel 5.4给了我 20506 :
Table::sum('field_name');
MySQL给了我 1830 :
Select sum(field_name) from table;
将Excel表格中的数据导入数据库之前: Sum给了我 145689
有什么想法吗?我尝试在执行总和之前转换为整数,但它不起作用。 所有数字都很大,但不包含逗号或点。
我必须总结的值的示例:(有时包含空单元格)
17906774
99630157
28581131
159551532
20312892
668928885
答案 0 :(得分:2)
$query = YourModel::query();
$query->withCount([
'activity AS yoursum' => function ($query) {
$query->select(DB::raw("SUM(amount_total) as paidsum"))->where('status', 'paid');
}
]);
答案 1 :(得分:1)
尝试
class Form < ActiveRecord::Base
end
class FormA < Form
def transform_to_pdf
end
private
REVISION_TO_IMPLEMENTATION_MAP = {
1 => FormAImplementationV1,
2 => FormAImplementationV2
}
def implementation
klass = REVISION_TO_IMPLEMENTATION_MAP[revision]
klass.new(self)
end
end
class FormAImplementation
def initialize(model)
end
end
class FormAImplementationV1 < FormAImplementation
def transform_to_pdf
end
end
class FormAImplementationV2 < FormAImplementation
def transform_to_pdf
end
end
如果它仍然给你错误的结果,也许等着有人给你一个更好的答案。这是我能想到的。
答案 2 :(得分: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
由于