Laravel Join Tables по дате сумма сумм - PullRequest
0 голосов
/ 23 мая 2018

У меня есть две таблицы с этими структурами:

Таблица: доход

id  | Date  | IncomeAmount

Таблица: расходы

id  | Date  | ExpenseAmount

У меня есть несколько регистров в течение дня, поэтому янужно добавить по дням поля IncomeAmount и ExpenseAmount и показать что-то вроде этого:

введите описание изображения здесь

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

Как в примере,возможно в определенные дни, не имея регистров для полей IncomeAmount или ExpenseAmount.

Любые советы о том, как этого добиться, очень ценятся.

Извините за мой английский.Заранее спасибо.

1 Ответ

0 голосов
/ 23 мая 2018

, если вы получили новый доход, выполните этот запрос, а также обновите свою ежедневную таблицу: (вы не упомянули имя таблицы, поэтому просто измените его)

$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'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...