问题描述
select distinct
a.contcode,decode(d.period,1,d.factor)"1YR",2,d.factor)"2YR",3,d.factor)"3YR",4,d.factor)"4YR",5,d.factor)"5YR"
from contlink a
join plans b on a.plangrp = b.plangrp
join earnings_account_classes c on a.contcode = c.account_class_code
join earnings_factors d on c.account_class_id = d.account_class_id
where b.program in ('AT','EIPP','RUP','WP','CW','MCK','PDR','TW','WR','WRR')
and b.term in (12,24,36,48,60,72,84,96,108,120)
and a.end_date is null
order by 1;
目前的数据如下所示:
CONTCODE | 1YR | 2YR | 3YR | 4YR | 5YR |
---|---|---|---|---|---|
A01 | 8.33 | ||||
A03 | 4.56 | ||||
A03 | 3.78 | ||||
A05 | 2.75 | ||||
A05 | 3.26 | ||||
A05 | 2.33 | ||||
A07 | 2.42 | ||||
A07 | 2.69 | ||||
A07 | 2.23 | ||||
A07 | 0.99 | ||||
A09 | 2.37 | ||||
A09 | 2.32 | ||||
A09 | 1.80 | ||||
A09 | 1.21 | ||||
A09 | 0.65 |
我需要它看起来像这样:
CONTCODE | 1YR | 2YR | 3YR | 4YR | 5YR |
---|---|---|---|---|---|
A01 | 8.33 | ||||
A03 | 4.56 | 3.78 | |||
A05 | 2.75 | 3.26 | 2.33 | ||
A07 | 2.42 | 2.69 | 2.23 | 0.99 | |
A09 | 2.37 | 2.32 | 1.80 | 1.21 | 0.65 |
请指教。
解决方法
也许是这样的:
select distinct
a.contcode,sum(decode(d.period,1,d.factor))"1YR",2,d.factor))"2YR",3,d.factor))"3YR",4,d.factor))"4YR",5,d.factor))"5YR"
...
group by a.contcode
order by 1;
鲍比