【问题标题】:Addition and Subtraction with Query Builder Doctrine ORM 2Query Builder Doctrine ORM 2 的加法和减法
【发布时间】:2015-08-17 16:43:50
【问题描述】:
我有一个交易表,其中包含我的用户进行的交易(存款)列表。
ID |用户 ID |信用 |借方|状态
1 | 1 |5 |1
2 | 1 |12 |1
3 | 1 |8 |1
要计算每个用户的当前余额,我需要将所有贷方的总和减去所有借方的总和。
MySql 语句是这样的:
SELECT SUM(Credit) - SUM(Debit) as Balance FROM Transactions WHERE user_id = 1 ANS status = 1;
如何在 QB 中做到这一点?
【问题讨论】:
标签:
doctrine-orm
doctrine-query
【解决方案1】:
这个解决起来比较简单,这是我使用 DQL 返回我的用户帐户余额的最终函数:
public function getUserBalance($userObject)
{
return $this->transactionRepository->createQueryBuilder('u')
->add('select','SUM(u.credit) - SUM(u.debit)')
->where('u.status = :status')
->andWhere('u.user = :userObject')
->setParameter('status' , 1)
->setParameter('userObject' , $userObject)
->getQuery()
->getSingleScalarResult();
}