Я относительно новичок в Oracle и провел большую часть дня, пытаясь написать запрос, чтобы вернуть итоги YTD и Fiscal 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
Где Заказ представляет собой периодический платеж, который снова появляется в каждом счете на основе логики в другом месте. Что мне нужно вернуть, так это общую стоимость данного счета, а также общую сумму с начала года для кода заказа, а также финансовый год с начала года (начиная с 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 года.