Построитель красноречивых запросов Laravel – сумма с группой по отношениюPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Построитель красноречивых запросов Laravel – сумма с группой по отношению

Сообщение Anonymous »

Я ищу решение для построения запросов для следующего:

Таблица: типы транзакций

| id | type_hash | description | category |
|----|-----------|-----------------|----------|
| 1 | abcd | sale price | sale |
| 2 | dbac | sale tax | sale |
| 3 | agft | sale shipping | sale |
| 4 | pgsk | refund price | refund |
| 5 | sa2r | refund tax | refund |
| 6 | sdf4 | refund shipping | refund |


Таблица: транзакции

| id | type_hash | amount |
|----|-----------|--------|
| 1 | abcd | 12 |
| 2 | dbac | 14 |
| 3 | agft | 19 |
| 4 | pgsk | -20 |
| 5 | sa2r | -12 |
| 6 | sdf4 | -7 |


Связь — транзакция принадлежит типу транзакции

public function transactionType() : BelongsTo
{
return $this->belongsTo(TransactionType::class, 'type_hash', 'type_hash');
}



Результат, который я ищу в таблице транзакций:
  • Сумма агрегированная сумма (сумма) как сумма
  • Группировать транзакции по TransactionType.category
т.е.

| Results | transactionType.category | sum(amount) |
|---------|--------------------------|---------------|
| 1 | sale | 45 |
| 2 | refund | -39 |


Я могу заставить работать следующее, но в идеале я хочу выполнять всю агрегацию в построителе запросов, а не в коллекции:
Transaction::selectRaw('sum(amount) as amount')
->with('transactionType')
->get()
->groupBy('transactionType.category');


Я пробовал следующее (и его варианты), но не смог заставить его работать:

Transaction::selectRaw('sum(amount) as amount')
->with(['transactionType' => function($query){
$query->select('category')->groupBy('category');
}])
->get();


Подробнее здесь: https://stackoverflow.com/questions/558 ... lationship
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Построитель красноречивых запросов Laravel – сумма с группой по отношению
    Anonymous » » в форуме Php
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Построитель запросов на удаление Laravel
    Anonymous » » в форуме Php
    0 Ответы
    61 Просмотры
    Последнее сообщение Anonymous
  • Построитель запросов Laravel со сводной таблицей и условием
    Anonymous » » в форуме Php
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Несколько красноречивых операторов Where с несколькими параметрами
    Anonymous » » в форуме Php
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Как заставить построитель запросов выводить необработанный SQL-запрос в виде строки?
    Anonymous » » в форуме Php
    0 Ответы
    58 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»