сумма значений перекрывающихся заказов на поставку

#sql #oracle #window-functions

#sql #Oracle #окно-функции

Вопрос:

У меня есть несколько POs со значениями, и мне нужно вычислить сумму, но также отобразить все строки и столбцы. вот таблица ввода, поэтому результат остается тем же дополнительный столбец для суммы, 150 (для 1,2) или 200 (для 4,5)

введите описание изображения здесь

Я могу просто использовать аналитическую функцию для отображения суммы со всеми строками

 select PO, start, end , value , sum(value) over (partition by start, end ) as sum 
from table;
  

но заказы не перекрывают друг друга в точную дату, как это каждый раз, предположим, что есть другой заказ

введите описание изображения здесь

будет 2 случая

  1. сумма значений для заказов 1,2,3, которая равна 250
  2. сумма значений для заказа 3,4,5, которая равна 300

В выходных данных мне нужно отобразить всю строку сумму, и, конечно, в этой конкретной ситуации PO 3 должен отображаться дважды.

есть идеи? Спасибо

Комментарии:

1. И как вычисляются даты? Ваш пример перекрытий довольно прост. Что происходит в более сложных ситуациях?

2. что вы имеете в виду, как вычисляются даты? есть такие простые совпадения, и, как я уже писал, во многих случаях есть несколько заказов с одинаковым таймфреймом (одинаковое начало и конец), поэтому аналитическая функция может работать, но может быть случай, когда один или несколько заказов перекрываются только за 1 день

3. Какую версию oracle вы используете?

4. версия oracle 12

5. Вы сказали, что хотите but also display all rows . Но вы не сказали, как должна отображаться запись для PO=3 as individual. а также я не понимаю, зачем вам это нужно of course the PO 3 must be displayed twice in this particular situation .