Sql 在Oracle中创建动态视图

Sql 在Oracle中创建动态视图,sql,oracle11g,Sql,Oracle11g,我有一个sql来计算wip数据 select 'WIP Balance - sls' item,area ima12,sum(aug) amt,'201808' dat from frdata.careawipsts@mesrpt where area != 'WH' group by area union all select 'WIP Balance - sls' item,'Subtotal WIP balance' ima12,sum(amt),'201808' dat from (se

我有一个sql来计算wip数据

select 'WIP Balance - sls' item,area ima12,sum(aug) amt,'201808' dat from frdata.careawipsts@mesrpt where area != 'WH' group by area
union all
select 'WIP Balance - sls' item,'Subtotal WIP balance' ima12,sum(amt),'201808' dat from
(select 'WIP Balance - sls' item,area ima12,sum(aug) amt,'201808' dat from frdata.careawipsts@mesrpt where area != 'WH' group by area)
union all

select 'WIP Balance - sls' item,area ima12,sum(wip) amt,'201809' dat from frdata.careawipsts@mesrpt where area != 'WH' group by area
union all
select 'WIP Balance - sls' item,'Subtotal WIP balance' ima12,sum(amt),'201809' dat from
(select 'WIP Balance - sls' item,area ima12,sum(sep) amt,'201809' dat from frdata.careawipsts@mesrpt where area != 'WH' group by area)

dblink mesrpt中的carewipsts表每个月都会添加一列包含上月值,名称如aug、sep、oct等。我使用sql按区域计算每个月组的金额和总额。现在我必须每月手动更新SQL。有可能自动完成吗?如果不是,如果dblink中的表全年具有固定列。有可能吗?

我认为您应该尝试物化视图。大概是这样的:

Create Materialized view temp_mv
refresh complete start with (sysdate) next (TRUNC(add_months(SYSDATE,1),'MM'))
as select ...