Есть 2 таблицы: user и transaction. Связь один ко многим (1 пользователь – много транзакций). В таблице transaction есть поле 'amount' и связывающее поле с таблицей user - user_id.
Нужно сделать выборку пользователей и подгрузить связанную таблицу transaction. При этом в свойстве amount таблицы transaction должна быть сумма всех строк 'amount' каждого отдельного пользователя. Условие - не отбирать пользователей у которых сумма по полю 'amount' равна 0.
Пример sql:
SELECT * FROM (
SELECT user.*, (SELECT SUM(amount) FROM transaction WHERE user_id = user.id) AS balance FROM user
) t WHERE balance != 0
Нужно плучить ActiveQuery, т.е.:
$usersQuery = User::find()
->with(...)