代码在Oracle整体执行没有问题,结果正确,但是其中子查询select amount from y m where month=1 and m.year=y.year单独执行却报错

select year, 
(select amount from y m where month=1 and m.year=y.year) as m1,
(select amount from y m where month=2 and m.year=y.year) as m2,
(select amount from y m where month=3 and m.year=y.year) as m3,
(select amount from y m where month=4 and m.year=y.year) as m4
from y group by year

单独执行肯定报错了,你这是关联子查询。
关联了y表的year字段。

单独执行子查询,只有别名表m,没有表y,把y.year改为具体值。

select amount from y m where month=1 and m.year=y.year
改为
select amount from y m where month=1 and m.year='2021'

select amount from y m where month=1 and m.year=y.year
这个y.year的y指的是外查询(from y group by year)的y,y都不存在肯定报错了。