É possível com uma iteração do Loop obter o seguinte resultado da tabela: Cada vez tirar de todos cd_number um número cada e suas datas. Tentei com um loop, mas não consegui iterá-lo da maneira que preciso. Pergunta SQL em detalhes Existe alguma outra maneira de recuperar o resultado específico além de usar um loop?
table result;
cd_number date_begin date_end
1 03-APR-17 03-JUN-19
1 25-FEB-19 03-JUN-20
1 13-MAR-20 30-JUN-23
2 02-NOV-17 30-APR-18
2 25-FEB-19 11-OCT-19
3 31-DEC-16 30-OCT-17
3 21-OCT-21 16-FEB-22
3 19-OCT-22 30-JUN-23
Example table with results
CREATE TABLE tbl28 (cd_Number int, date_begin date, date_end date );
insert into tbl28 (cd_Number,date_begin,date_end)
SELECT 1, '03-APR-17', '03-JUN-19' FROM DUAL UNION ALL
SELECT 1, '25-FEB-19', '03-JUN-19' FROM DUAL UNION ALL
SELECT 1, '13-MAR-20', '30-JUN-23' FROM DUAL UNION ALL
SELECT 2, '02-NOV-17', '30-APR-18' FROM DUAL UNION ALL
SELECT 2, '25-FEB-19', '11-OCT-19' FROM DUAL UNION ALL
SELECT 3, '31-DEC-16', '30-OCT-17' FROM DUAL UNION ALL
SELECT 3, '21-OCT-21', '16-FEB-22' FROM DUAL UNION ALL
SELECT 3, '19-OCT-22', '30-JUN-23' FROM DUAL;
expected result;
first iteration 1 03-APR-17 03-JUN-19
2 02-NOV-17 30-APR-18
3 31-DEC-16 30-OCT-17
second iteration
1 25-FEB-19 03-JUN-20
2 25-FEB-19 11-OCT-19
3 21-OCT-21 16-FEB-2 2
and in the third iteration
1 13-MAR-20 30-JUN-23
3 19-OCT-22 30-JUN-23
Use a
ROW_NUMBER
função analítica para gerar o número da iteração:Que, para os dados de amostra:
Saídas:
Se você deseja apenas uma iteração específica, enumere as iterações em uma subconsulta e filtre em uma consulta externa:
Quais saídas:
violino