CakePHP 3: Как заполнить сумму столбца из другой таблицы - PullRequest
0 голосов
/ 29 сентября 2019

Пожалуйста, помогите построить запрос с помощью CAKEPHP 3.X, хотя я сейчас использую cakephp 3.8.

У меня есть таблица Как:

enter image description here

и другая таблица, такая как:

enter image description here

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

Как я могу получить сумму сумм из таблицы B для выбора выписки из таблицы A за последние 7 дней, используя CakePHP 3 ORM / Query Builder LIKE Итак.

enter image description here

Спасибо, что помогли мне заранее

1 Ответ

2 голосов
/ 30 сентября 2019

Я даю вам базовое представление о том, что делать:

$a = TableRegistry::getTableLocator()->get('a', ['table' => 'TableA']); // use your table "TableA" as alias "a"
$query = $a->find();
$result = $query->select(['a.*']) // select all from table a
    ->select(['Last7DaysAmount' => $query->func()->sum('b.amount')]) // select sum('b.amount') AS Last7DaysAmount
    ->where(['b.date >' => DATE(NOW() - INTERVAL 7 DAY)]) // where b.date greater than current minus 7 days
    ->join([ // join other table
        'table' => 'TableB',
        'alias' => 'b',
        'type' => 'left',
        'conditions' => [ // with conditions
            'a.client' => 'b.customer',
            'a.vendor' => 'b.supplier',
            'a.service' => 'b.service',
            'a.country' => 'b.country',
            ]
     ])
    ->group([ // group results by
            'a.client',
            'a.vendor',
            'a.service',
            'a.country',
    ])
    ->order(['a.client' => 'ASC'])
    ->limit(100);

    $this->set('results', $results);
...