Выберите оператор с суммой и несколькими строками

select Document_id, Document_date, sum(document_money)
from documents
group by Docuemnt_id, Docuement_date; 

Первый запрос возвращает следующие результаты:

1    01-FEB-2017      10000
2    02-FEB-2017      20000
3    03-FEB-2017      10000

Запрос № 2:

select document_id, Document_date, document_money, document_details
from documents ; 

Результаты:

1    01-FEB-2017      5000       rentment
1    01-FEB-2017      5000       food
2    02-FEB-2017      10000      car
2    02-FEB-2017      10000      house
3    03-FEB-2017      7000       mobiles
3    03-FEB-2017      3000       drinks

Как я могу создать запрос, который дает мне document_no, the_date, сумму денег и детали следующим образом:

 1    01-FEB-2017      10000      rentment
 1    01-FEB-2017      10000      food
 2    02-FEB-2017      20000      car
 2    02-FEB-2017      20000      house
 3    03-FEB-2017      10000      mobiles
 3    03-FEB-2017      10000      drinks

1 ответ

Решение

Вам нужно использовать аналитическую функцию SUM():

select document_id, document_date, 
       sum(document_money) over (partition by document_id, document_date) as sum_money,
       document_details
from   documents;
Другие вопросы по тегам