2013-06-18 48 views
3

我想要做一個查詢比SQL是:Querydsl - 如何通過使用組,總和

SELECT users.id, SUM(total), SUM(total*price) FROM sales INNER JOIN users ON sales.id_user=users.id GROUP BY users.id 

我試圖尋找解決方案,但我得到的最接近的是:

QSales sales = QSales.sales; 
JPAQuery query = from(sales); 
QUsers users = QUsers.users; 
query.innerJoin(sales.users, users); 
List<Object[]> response = query.groupBy(sales.user).list(sales.user, sales.total.sum()); 

但我不知道如何得到這個:

SUM(total*price) 

回答

1
SUM(total*price) 

可以表示爲

total.multiply(price).sum() 
+0

謝謝,它工作正常 – Hector

0

可以使用NumberExpression

NumberExpression totalPrice = sales.total.multiply(sales.price); 

然後使用totalPrice.sum()