首页 > 解决方案 > ORACLE SQL 我需要在三列中输出 generation_name ,日期,总计

问题描述

这是一张桌子 这是一个表值

预期输出为在此处输入图像描述

标签: sqloracleoracle12c

解决方案


您正在寻找递归查询:

with cte(generator_name, from_date, to_date, total) as
(
  select generator_name, from_date, to_date, total from mytable
  union all
  select generator_name, from_date + 1, to_date, total from cte where from_date < to_date
)
select generator_name, from_date as date, total
from cte
order by generator_name, date, total;

推荐阅读