Вы можете использовать следующий оператор SQL:
select article,
max(decode(to_char("date",'mm/yyyy'),to_char(sysdate,'mm/yyyy'),nvl(price,0)))
as current_price,
to_char(sysdate,'mm/yyyy') as current_month,
max(decode(to_char("date",'mm/yyyy'),to_char(add_months(sysdate,-1),'mm/yyyy'),
nvl(price,0)))
as last_price,
to_char(add_months(sysdate,-1),'mm/yyyy') as last_month
from articles
where article = 'cup'
group by article;
ARTICLE CURRENT_PRICE CURRENT_MONTH LAST_PRICE LAST_MONTH
cup 3,70 07/2018 3,50 06/2018
при условии, что sysdate (текущая дата) находится между 01/07/2018 - 31/07/2018
(формат dd/mm/yyyy
)
Rextester Demo