我有两张表发票和invoice_items。我想要的是和金额为每个发票id和显示在我的看法。
发票表
invoice_items表
>
id
发票号
数量
我想为具体的发票id求和金额列。我对laravel是新来的,所以我如何使用laravel eloquent做到这一点。
Try with this one. I think this works
$result = \DB::table('Invoice')
->join('invoice_items', 'Invoice.id',
'=','invoice_items.invoice_id')->whereIn('Invoice.id', [1, 2, 3]))->sum('invoice_items.amount');
if somewhere i am wrong try with exchanging table name.
假设在您的发票模型中有这样的关系。
public function invoice_items() [
return $this->hasMany('App\Invoice_Items', 'invoice_id');
}
在控制器中,代码应该如下所示。
获取所有发票及其发票项总金额
$invoices = Invoice::with(['invoice_items' => function($query){
$query->sum('amount');
}])->get();
return view('invoice', compact('invoices'));
获取包含发票项目总金额的特定发票
$invoice = Invoice::with(['invoice_items' => function($query){
$query->sum('amount');
}])->find($invoice_id);
return view('invoice', compact('invoices'));
因为你使用的是一对多。
您可以将与
和groupBy一起使用,如下所示:
$invoice = Invoice::with(['invoice_items' => function($query){
$query->groupBy('invoice_id')->select('invoice_id', DB::raw('SUM(amount) AS amount_sum'));
}])->get();
或者您可以使用
leftjoin
和SUM
如下所示:
$invoice_query = InvoiceItem::groupBy('invoice_id')->select("invoice_id", DB::raw('SUM(amount) AS amount_sum'));
Invoice::leftjoin(DB::raw("({$invoice_query->toSql()}) AS ii"), 'ii.invoice_id', '=', 'invoices.id')
->mergeBindings($invoice_query->getQuery())
->select('invoices.*', 'amount_sum')
->get();
在发票模型中使用存取器:
protected $appends = ['amount_sum'];
public function getAmountSumAttribute()
{
return $this->invoice_items()->where('invoice_id', $this->id)->sum('amount');
}
因此,您可以得到金额的总和:
Invoice::all()->toJSON();
问题内容: 我正在尝试生成特定计算机唯一的ID。该ID不会随机生成。这将基于计算,以便为计算机A生成的ID将是固定的,并且对于计算机A是唯一的。每次在计算机A上执行程序时,它将继续生成相同的ID,并且在另一台计算机上执行时,它将生成该计算机唯一的另一个ID。这是为了确保两台计算机没有相同的ID。 我的挑战: 为了使我的程序能够生成计算机唯一的ID,它需要基于执行该计算机的计算机唯一的种子来执行
我有一个数据文件如下例,但大得多 我必须计算Y1和Y2的每个3个相同名称(第一列)的平均值。然后分别用Y1和Y2的每个名称的平均值制作一个条形图。因此,在x轴上,我将有名称,在y轴上将有平均值。任何人都可以帮我吗?
每个代理都有一个私有布尔变量“Happy?”。如何用[Happy?=True]计算特工人数? 就餐时有没有直接的方法?或者我遍历了所有的代理,然后逐个计算? 更新: 我尝试过全局调度方法:https://repast.github.io/docs/RepastReference/RepastReference.html#schedule-全球的 当我使用ContextBuilder中的@schdu
问题内容: 我想选择总计为特定值的行。 我的SQL(SQL Fiddle): 它应该计算总和为410000并获取行。同时它应该得到这样的东西: 如您所见,42552 + 367225 =409777。它选择了两行,总行数接近410000。 我已经尝试了一切,但是没有用:( 对不起,我的语言,我是德语。 问题答案: 您可以使用相关子查询来获取运行总计,并检索其运行总计小于指定数量的行。(请注意,我将
本文向大家介绍如何计算C#枚举中定义的项目总数?,包括了如何计算C#枚举中定义的项目总数?的使用技巧和注意事项,需要的朋友参考一下 枚举是一种特殊的“类”,代表一组常量(不可更改/只读变量)。 要创建枚举,请使用enum关键字(而不是类或接口),并用逗号分隔枚举项- 默认情况下,枚举的第一项的值为0。第二项的值为1,依此类推。 要从项目中获取整数值,必须将项目显式转换为int 您还可以分配自己的枚
我想知道如何计算的累计总和在AnyLogic中。具体地说,我有一个循环事件,每周改变一个参数的值。从这个参数我想计算它收到的值的累计总和,我怎么做呢? 该事件是循环模式的超时。操作是: "name_parameter"=圆形(max(正常(10,200),0));