Я знаю, что это не на должном уровне как с точки зрения производительности, так и с точки зрения архитектуры базы данных.
но он должен выдавать то, что вы хотите при извлечении ...
select t1.Area, t1.Total_Sales as "Total sales", t2.*
from (select area, sum(total_sales) total_sales
from sales_data
group by area) t1,
(select i_t_1.Obj1,
i_t_1.Obj2,
i_t_1.Obj3,
i_t_1.Obj4,
nvl(i_t_2.Total_Sales, 0) PrvDyTtl,
nvl(i_t_2.obj1, 0) PrvObj1,
nvl(i_t_2.Obj2, 0) PrvObj2,
nvl(i_t_2.Obj3, 0) PrvObj3,
nvl(i_t_2.Obj4, 0) PrvObj4
from sales_data i_t_1, sales_data i_t_2
where i_t_1.area = i_t_2.area(+)
and trunc(i_t_1.date)= trunc(SYSDATE)
and trunc(i_t_2.date(+)) = trunc(SYSDATE - 1)) t2
where t2.area = t1.area;
Я предполагал, что имя таблицы - sales_data, прежде чем проверять это, просто замените имя таблицы из sales_data на желаемое имя таблицы.