ユーザーが月を入力し、最初にその月の売上が出力され、次に次の 12 か月の売上が出力されるというシナリオがあります。このクエリも書きました
select
sum(decode(month ,to_char(add_months(to_date(&m,'mon'),0),'mon'), sales)) "&m" ,
sum(decode(month ,to_char(add_months(to_date(&m,'mon'),1),'mon'), sales)) "&m" ,
sum(decode(month ,to_char(add_months(to_date(&m,'mon'),2),'mon'), sales)) "&m" ,
sum(decode(month ,to_char(add_months(to_date(&m,'mon'),3),'mon'), sales)) "&m" ,
sum(decode(month ,to_char(add_months(to_date(&m,'mon'),4),'mon'), sales)) "&m" ,
sum(decode(month ,to_char(add_months(to_date(&m,'mon'),5),'mon'), sales)) "&m" ,
sum(decode(month ,to_char(add_months(to_date(&m,'mon'),6),'mon'), sales)) "&m" ,
sum(decode(month ,to_char(add_months(to_date(&m,'mon'),7),'mon'), sales)) "&m" ,
sum(decode(month ,to_char(add_months(to_date(&m,'mon'),8),'mon'), sales)) "&m" ,
sum(decode(month ,to_char(add_months(to_date(&m,'mon'),9),'mon'), sales)) "&m" ,
sum(decode(month ,to_char(add_months(to_date(&m,'mon'),10),'mon'), sales)) "&m" ,
sum(decode(month ,to_char(add_months(to_date(&m,'mon'),11),'mon'), sales)) "&m" ,
sum(decode(month ,to_char(add_months(to_date(&m,'mon'),12),'mon'), sales)) "&m"
from sales
m
ユーザーからの入力月ですエイリアスも動的に変更する必要があるため、列エイリアスを操作する方法