select
b.yun_id,
b.yun_yaerm,
b.amount,
b.yun_name,
b.HB,
b.tb,
c.amount,
c.yun_yaerm ,
nvl( round((c.amount -b.amount)/b.amount,2),0),
d.amount,
d.yun_yaerm,
nvl( round((d.amount -b.amount)/b.amount,2),0)
from lichengyun b
left join
lichengyun c on
to_date(b.yun_yaerm,'yyyy-mm-dd') = add_months(to_date (c.yun_yaerm ,'yyyy-mm-dd') ,-1)
left join
lichengyun d on
to_date(b.yun_yaerm,'yyyy-mm-dd') = add_months(to_date (d.yun_yaerm ,'yyyy-mm-dd') ,-12)
b.yun_id,
b.yun_yaerm,
b.amount,
b.yun_name,
b.HB,
b.tb,
c.amount,
c.yun_yaerm ,
nvl( round((c.amount -b.amount)/b.amount,2),0),
d.amount,
d.yun_yaerm,
nvl( round((d.amount -b.amount)/b.amount,2),0)
from lichengyun b
left join
lichengyun c on
to_date(b.yun_yaerm,'yyyy-mm-dd') = add_months(to_date (c.yun_yaerm ,'yyyy-mm-dd') ,-1)
left join
lichengyun d on
to_date(b.yun_yaerm,'yyyy-mm-dd') = add_months(to_date (d.yun_yaerm ,'yyyy-mm-dd') ,-12)
2、还可以通过with as构建不同年月的临时表实现。