Есть такая таблица операций:
+----+------------+-----------+--------+---------------------------------+---------------------------------+---------------------------------+
| id | oper_date | parent_id | amount | p1 | p2 | p3 |
+----+------------+-----------+--------+---------------------------------+---------------------------------+---------------------------------+
| 1 | 01.09.2018 | 1 | 5 | p1 value at the date 01.09.2018 | p2 value at the date 01.09.2018 | p3 value at the date 01.09.2018 |
| 2 | 01.09.2018 | | 2 | p1 value at the date 01.09.2018 | p2 value at the date 01.09.2018 | p3 value at the date 01.09.2018 |
| 3 | 02.09.2018 | 1 | 7 | p1 value at the date 02.09.2018 | p2 value at the date 02.09.2018 | p3 value at the date 01.09.2018 |
| 4 | 02.09.2018 | | 4 | p1 value at the date 02.09.2018 | p2 value at the date 02.09.2018 | p3 value at the date 01.09.2018 |
| 5 | 02.09.2018 | | 6 | p1 value at the date 02.09.2018 | p2 value at the date 02.09.2018 | p3 value at the date 01.09.2018 |
| 6 | 02.09.2018 | | 10 | p1 value at the date 02.09.2018 | p2 value at the date 02.09.2018 | p3 value at the date 01.09.2018 |
| 7 | 03.09.2018 | | 4 | p1 value at the date 03.09.2018 | p2 value at the date 03.09.2018 | p3 value at the date 01.09.2018 |
| 8 | 03.09.2018 | 1 | 3 | p1 value at the date 03.09.2018 | p2 value at the date 03.09.2018 | p3 value at the date 01.09.2018 |
| 9 | 03.09.2018 | | 2 | p1 value at the date 03.09.2018 | p2 value at the date 03.09.2018 | p3 value at the date 01.09.2018 |
| 10 | 04.09.2018 | | 6 | p1 value at the date 04.09.2018 | p2 value at the date 04.09.2018 | p3 value at the date 04.09.2018 |
| 11 | 04.09.2018 | 1 | 7 | p1 value at the date 04.09.2018 | p2 value at the date 04.09.2018 | p3 value at the date 04.09.2018 |
| 12 | 04.09.2018 | | 11 | p1 value at the date 04.09.2018 | p2 value at the date 04.09.2018 | p3 value at the date 04.09.2018 |
| 13 | 04.09.2018 | | 4 | p1 value at the date 04.09.2018 | p2 value at the date 04.09.2018 | p3 value at the date 04.09.2018 |
| 14 | 05.09.2018 | | 8 | p1 value at the date 05.09.2018 | p2 value at the date 05.09.2018 | p3 value at the date 05.09.2018 |
| 15 | 05.09.2018 | 1 | 2 | p1 value at the date 05.09.2018 | p2 value at the date 05.09.2018 | p3 value at the date 05.09.2018 |
| 16 | 05.09.2018 | | 6 | p1 value at the date 05.09.2018 | p2 value at the date 05.09.2018 | p3 value at the date 05.09.2018 |
+----+------------+-----------+--------+---------------------------------+---------------------------------+---------------------------------+
При извлечении строк, у которых oper_date
равно <= определенной дате, это необходимо для
несколько строк с одинаковым ненулевым значением поля <code>parent_id
для отображения в поле amount
суммы всех операций за эту дату.
В полях p1/p2/p3/id/oper_date
мне нужно отобразить значения этих полей на эту дату.
Например, если я выбираю строки с помощью oper_date
<= 04.09.2018, мне нужно отобразить этот результат: </p>
+----+------------+-----------+--------+---------------------------------+---------------------------------+---------------------------------+
| id | oper_date | parent_id | amount | p1 | p2 | p3 |
+----+------------+-----------+--------+---------------------------------+---------------------------------+---------------------------------+
| 2 | 01.09.2018 | | 2 | p1 value at the date 01.09.2018 | p2 value at the date 01.09.2018 | p3 value at the date 01.09.2018 |
| 4 | 02.09.2018 | | 4 | p1 value at the date 02.09.2018 | p2 value at the date 02.09.2018 | p3 value at the date 01.09.2018 |
| 5 | 02.09.2018 | | 6 | p1 value at the date 02.09.2018 | p2 value at the date 02.09.2018 | p3 value at the date 01.09.2018 |
| 6 | 02.09.2018 | | 10 | p1 value at the date 02.09.2018 | p2 value at the date 02.09.2018 | p3 value at the date 01.09.2018 |
| 7 | 03.09.2018 | | 4 | p1 value at the date 03.09.2018 | p2 value at the date 03.09.2018 | p3 value at the date 01.09.2018 |
| 9 | 03.09.2018 | | 2 | p1 value at the date 03.09.2018 | p2 value at the date 03.09.2018 | p3 value at the date 01.09.2018 |
| 10 | 04.09.2018 | | 6 | p1 value at the date 04.09.2018 | p2 value at the date 04.09.2018 | p3 value at the date 04.09.2018 |
| 11 | 04.09.2018 | 1 | 22 | p1 value at the date 04.09.2018 | p2 value at the date 04.09.2018 | p3 value at the date 04.09.2018 |
| 12 | 04.09.2018 | | 11 | p1 value at the date 04.09.2018 | p2 value at the date 04.09.2018 | p3 value at the date 04.09.2018 |
| 13 | 04.09.2018 | | 4 | p1 value at the date 04.09.2018 | p2 value at the date 04.09.2018 | p3 value at the date 04.09.2018 |
+----+------------+-----------+--------+---------------------------------+---------------------------------+---------------------------------+
Для строки с id
= 11 поле AMOUNT
отображает сумму (22 = 5 + 7 + 3 + 7) значений
всех строк, для которых parent_id
= 1, для которых oper_date
равно <= 04/09 / 2018. </p>
Как это сделать с помощью sql-запроса?
P.S. При разработке таблицы для родительской строки в поле parent_id я могу оставить значение NULL или его идентификатор.