我在视图中显示以下数据:
我正在寻找一些代码,如果FEB的PM_NO 4为年度,那么每月,季度和半年都是空的。如果MAY的PM_NO 2是QUARTERLY然后MONTHLY为null&out; d out等,那么同样适用。这可能在Oracle SQL上。
此致
Jon Ditchfield
答案 0 :(得分:0)
一种方法是为每个具有值的列找到最后一个pm_no
,然后将所有早期的列设置为NULL:
select t.pm_no,
(case when pm_no >= jan_pmno then jan end) as jan,
(case when pm_no >= feb_pmno then feb end) as feb,
. . .
from (select t.*,
max(case when jan is not null then pm_no end) over () as jan_pmno,
max(case when feb is not null then pm_no end) over () as feb_pmno,
. . .
from t
) t