2012-11-04 2 views

답변

2

몇 가지 다른 방법이 있습니다.

long sum = dao.queryRawValue(
     "SELECT SUM(column1 * column2) AS total FROM (...)"); 

당신은 쿼리를 작성하는 QueryBuilder를 사용할 수있는 한 가지 방법은 간단하다.

QueryBuilder<Foo, Integer> qb = dao.queryBuilder(); 
qb.selectRaw("SUM(column1 * column2) AS total"); 
qb.where()... 
long sum = dao.queryRawValue(qb.prepareStatementString()); 

난 당신이 내가 내부 쿼리에있는 가정 column1column2 때문에 내부를 가질 필요가 있다고 생각하지 않으며 WHERE는 외부 쿼리로 이동할 수 있습니다.

+0

거기에 GROUP BY 문이있어서 잘못된 SUM 기능으로 이어질 수 있으므로 내부 쿼리를 떠날 수 없습니다. 하지만 어쨌든 내부 쿼리의 결과 목록을 가지고 있으므로 코드에서 수동으로 결과를 요약 할 수 있습니다. ORMLite의 내부 쿼리에 대한 기능이 없다고 가정합니다. 맞습니까? –

관련 문제