यहाँ सिर्फ सबक्वेरी और एग्रीगेशन के साथ ऐसा करने का एक तरीका है:
select name,
sum(case when fy = 2014 then x end) as "2014",
sum(case when fy = 2015 then x end) as "2015",
sum(case when fy = 2016 then x end) as "2016"
from (select fy,
(case when n.n = 1 then 'x1'
when n.n = 2 then 'x2'
when n.n = 3 then 'x3'
when n.n = 4 then 'x4'
end) as name,
(case when n.n = 1 then x1
when n.n = 2 then x2
when n.n = 3 then x3
when n.n = 4 then x4
end) as x
from temp_table cross join
(select 1 as n from dual union all
select 2 from dual union all
select 3 from dual union all
select 4 from dual
) n
) t
group by name;
आप pivot
. का भी उपयोग कर सकते हैं , लेकिन यह Oracle SQL में हाल ही में जोड़ा गया है, इसलिए मैं इस पद्धति का उपयोग करने के लिए इच्छुक हूं।