안녕하세요. 테이블의 컬럼의 년도 차이만큼 data Row로 추출 하고 싶은데요.
예를 들면 order 라는 테이블의 데이터에
order_id start_yyyymm end_yyyymm order_rate
1 201102 201301 100
2 201801 201812 80
3 201802 202301 70
이렇게 있다고 한다면
-------------------------------------------
order_id 가 3인 데이터를 추출 한다면 Row가
order_row year order_rate
1 2018 70
2 2019 70
3 2020 70
4 2021 70
5 2022 70
6 2023 70
----------------------------------------------
-------------------------------------------
order_id 가 1인 데이터를 추출 한다면 Row가
order_row year order_rate
1 2011 100
2 2012 100
3 2013 100
----------------------------------------------
이렇게 추출 하고 싶습니다.
WITH t AS ( SELECT 1 order_id, '201102' start_yyyymm, '201301' end_yyyymm, 100 order_rate UNION ALL SELECT 2, '201801', '201812', 80 UNION ALL SELECT 3, '201802', '202301', 70 ) SELECT a.order_id , b.seq AS order_row , SUBSTR(a.start_yyyymm, 1, 4) + b.seq - 1 order_yyyy , a.order_rate FROM t a INNER JOIN seq_1_to_9 b -- MariaDB 전용 seq 생성 -- ON b.seq <= SUBSTR(a.end_yyyymm, 1, 4) - SUBSTR(a.start_yyyymm, 1, 4) + 1 WHERE a.order_id = 3 ;