Я относительно новичок в Oracle и провел большую часть дня, пытаясь написать запрос для возврата итоговых значений YTD и фискальных YTD по столбцу.
Упрощенная версия таблицы только с соответствующими столбцами выглядит примерно так:
INVOICE_NUM | INVOICE_DATE | ORDER_CODE | ORDER_COST
509 '14-FEB-20' 'ORD001' 34.99
509 '14-FEB-20' 'ORD002' 14.99
509 '14-FEB-20' 'ORD003' 59.99
428 '16-JAN-20' 'ORD001' 34.99
428 '16-JAN-20' 'ORD002' 14.99
306 '14-DEC-19' 'ORD001' 34.99
306 '14-DEC-19' 'ORD002' 14.99
201 '15-NOV-19' 'ORD001' 34.99
108 '16-OCT-19' 'ORD001' 34.99
, где ордер - это повторяющийся платеж, который появляется в каждом счете на основании логи c в другом месте. Мне нужно вернуть итоговую стоимость данного счета-фактуры вместе с итоговой суммой с начала года для кода заказа, а также с начала финансового года (начиная с 1 ноября) для каждого кода заказа. Для этого примера выборки мой запрос должен вернуть счет-фактуру 509:
ORDER_CODE | CURRENT_INVOICE_TOTAL | YTD_TOTAL | FISCAL_YTD_TOTAL
'ORD001' 34.99 69.69 139.96
'ORD002' 14.99 29.98 44.97
'ORD003' 59.99 59.99 59.99
На данный момент все, что у меня есть:
SELECT
order_code
SUM(order_cost)
FROM
table_name
WHERE
invoice_num = :invoice_num
GROUP BY
order_code
Мои попытки с начала года провалились до настоящего времени но среда разработки также имеет очень плохие данные, поэтому нет реального способа проверить это. На данный момент я планирую создать временную таблицу с поддельными данными, чтобы попытаться это выяснить.
РЕДАКТИРОВАТЬ для ясности : запрос должен возвращать итоги YTD за указанную дату счета. Например, если бы я запросил в 2020 году счет-фактуру от мая 2018 года, он должен вернуть итоговые суммы с начала года для каждого кода заказа, содержащегося в этом счете-фактуре с января 2018 года - мая 2018 года