繁体   English   中英

Laravel按列日期总和连接表

[英]Laravel Join Tables by date sum of colums

我有两个具有以下结构的表:

表:收入

id  | Date  | IncomeAmount

表:费用

id  | Date  | ExpenseAmount

我一天中有多个寄存器,因此我需要IncomeAmount添加IncomeAmountExpenseAmount字段并显示类似以下内容:

在此处输入图片说明

Date       | IncomeAmount | ExpenseAmount | Balance
2018-01-01 | 10           | 5             | 5
2018-01-02 | 0            | 5             | -5
2018-01-03 | 20           | 0             | 20

如示例中所示,在某些日子里可能没有针对IncomeAmount或ExpenseAmount字段进行注册。

非常感谢您提供有关如何实现此目标的任何建议。

请问我的英语水平。 提前致谢。

如果您收到新收入,请运行此查询并更新您的每日表格:(您尚未提及表格名称,因此只需对其进行更改)

$today = \Carbon\Carbon::now()->format('Y-m-d');

Income::insert([
    'Date' => $today,
    'IncomeAmount' => $income
]);

$today_report = ReportTable::where(['date', $today])->get()[0];
$today_report->IncomeAmount = $today_report->IncomeAmount + $income;
$today_report->balance = $today_report->IncomeAmount - $today_report->ExpenseAmount;
$today_report->save();

如果您收到新的费用:

$today = \Carbon\Carbon::now()->format('Y-m-d');

Expense::insert([
    'Date' => $today,
    'ExpenseAmount' => $expense
]);

$today_report = ReportTable::where(['date', $today])->get()[0];
$today_report->ExpenseAmount = $today_report->ExpenseAmount + $income;
$today_report->balance = $today_report->IncomeAmount - $today_report->ExpenseAmount;
$today_report->save();

我认为这就是您所需要的。 注意有型号

Income, Expense, ReportTable

编辑编辑编辑

$incomes = Income::select('*', DB::raw('SUM(incomeAmount) as incomeAmount'))
->groupBy('date')
->get()
->pluck('incomeAmount','date');

$expenses = Expense::select('*', DB::raw('SUM(expenseAmount) as expenseAmount'))
        ->groupBy('date')
        ->get()
        ->pluck('expenseAmount','date');

$day_balance = $income['2018-15-06'] - $income['2018-15-06'];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM