Laravel запрашивает сумму столбца за каждый месяц - PullRequest
0 голосов
/ 01 ноября 2018

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

$test = DB::table('actuals')
->Where('company_id',$id)
->Where('account_level_l','LIKE','%Income%')
->select(DB::raw('SUM(amount) as total_amount'))
->groupBy(DB::raw('MONTH(date) ASC'))->get();

и это объекты, которые возвращаются, с 12 месяцев 10 есть данные:

Collection {#1381 ▼
  #items: array:10 [▼
    0 => {#1370 ▼
      +"total_amount": 133409.46
    }
    1 => {#1371 ▼
      +"total_amount": 77421.36
    }
    2 => {#1372 ▼
      +"total_amount": 78193.81
    }
    3 => {#1373 ▼
      +"total_amount": 940477.66
    }
    4 => {#1374 ▼
      +"total_amount": 81713.1
    }
    5 => {#1375 ▼
      +"total_amount": 64792.43
    }
    6 => {#1376 ▼
      +"total_amount": 85099.41
    }
    7 => {#1377 ▼
      +"total_amount": 127753.07
    }
    8 => {#1378 ▼
      +"total_amount": 62953.11
    }
    9 => {#1379 ▼
      +"total_amount": 356.61
    }
  ]
}

1 Ответ

0 голосов
/ 01 ноября 2018

вам просто нужно выбрать номер месяца в вашем запросе следующим образом:

$test = DB::table('actuals')
->Where('company_id',$id)
->Where('account_level_l','LIKE','%Income%')
->select(DB::raw('SUM(amount) as total_amount, MONTH( date ) as month'))
->groupBy(DB::raw('MONTH(date) ASC'))->get();

и это даст number of month и total_amount каждой строки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...