2016-11-27 2 views
0

Я пытаюсь суммировать строки таблицы после того, как группе, позволь мне объяснить мою проблему с примером:сумма строк после группы в DSL запроса или jpql

1) Мне нужно рассчитать общие затраты по имени, отдел. Я могу сделать это с помощью группы, простой и простой.

по имени:

select e.Employee_name, sum(expenses) 
from Employee e 
group by Employee_name 

по отделу:

select e.dept, sum(expenses) 
from Employee e 
group by dept 

Это где я борюсь с JPA.

2) Мне нужно рассчитать общие расходы при группировке по имени или отделу. с родной SQL я могу сделать внутренний запрос в из пункта, как показано ниже:

select sum(employeeExpense) 
from (
    select e.Employee_name, sum(expenses) as employeeExpense 
    from Employee e 
    group by Employee_name 
) X 

Я застрял с шагом 2, чтобы решить эту проблему с помощью JPA, есть способ сделать это в JPA или запрос DSL?

enter image description here

+0

вы можете использовать createQuery, и он вернет вам то, что вы хотите, и он вернет вам объект [] или объект в соответствии с вашим запросом, поэтому возьмите посмотреть это ссылка http://stackoverflow.com/questions/3449719/how-to-run-an-aggregate-function-like-sum-on-two-columns-in-jpa-and-display-thei –

+0

@a_horse_with_no_name: исправлено мое запрос. – rohith

ответ

0

поэтому я дам вам только один подход запроса здесь использовать CreateQuery и он вернется к вам что-то вроде этого

select e.Employee name , sum(expenses) 
from Employee e 
group by Employee name 

@Autowired 
private EntityManager em; 
List<Object[]> list = em.createQuery("select e.EmployeeName , sum(e.exprenses) from Employee e group by e.EmployeeName").getResultList(); 

каждый из списка элемента Object [] и Object [] первый элемент будет именем сотрудника, а второй - суммой (exprenses)

+0

Я ищу версию запроса jpql на шаге 2 в моем вопросе. – rohith

+0

Второй шаг просто возьмите все резюме расходов на персонал, почему вы делаете, просто возьмите все из них с помощью select sum() из таблицы, он будет работать, выберите сумму (расходы) от сотрудника, он даст вам все резюме расходов на персонал –

+0

извините, если я непонятно, мне нужно рассчитать общие расходы после группы. Мне нужны общие расходы, сгруппированные по имени и отделу сотрудника. имеет смысл ? – rohith

Смежные вопросы