Código:
Esto lo que hace me rellena esto:DECLARE contador INTEGER; primero INTEGER; ultimo INTEGER; BEGIN primero:0; ultimo:120; FOR contador IN primero..ultimo LOOP INSERT INTO DIM_EDAD (PK, GRUPO) SELECT contador, CASE WHEN contador between 0 and 4 THEN 1 WHEN contador between 5 and 9 THEN 2 WHEN contador between 10 and 14 THEN 3 WHEN contador between 15 and 19 THEN 4 WHEN contador between 20 and 24 THEN 5 WHEN contador between 25 and 29 THEN 6 WHEN contador between 30 and 34 THEN 7 WHEN contador between 35 and 39 THEN 8 WHEN contador between 40 and 44 THEN 9 WHEN contador between 45 and 49 THEN 10 WHEN contador between 50 and 54 THEN 11 WHEN contador between 55 and 59 THEN 12 WHEN contador between 60 and 64 THEN 13 WHEN contador between 65 and 69 THEN 14 WHEN contador between 70 and 74 THEN 15 WHEN contador between 65 and 69 THEN 16 WHEN contador between 70 and 74 THEN 17 WHEN contador between 75 and 79 THEN 18 WHEN contador between 80 and 84 THEN 19 WHEN contador > 84 THEN 20 FROM DUAL; END LOOP; END;
TABLA
PK | GRUPO
0 | 1
1 | 1
2 | 1
3 | 1
4 | 1
5 | 2
6 | 2
7 | 2
8 | 2
9 | 2
10 | 3
11 | 3
12 | 3
13 | 3
14 | 3
15 | 4
.... | ...
Como veis me agrupa por cada 5 numeros, pero yo quiero parametrizar ese agrupamiento, para no tener que poner todos los when creo que la soluciones seria meter un LOOP dentro de un insert pero no hay forma...algo asi, pero nada, vamos
Código:
Creo que esto se podria hacer pero mi problema es que no se PL/SQL, alguna ayuda.DECLARE contador INTEGER; primero INTEGER; ultimo INTEGER; variable INTEGER; agrupar INTEGER; BEGIN primero:0; ultimo:120; variable:0; agruparA:0; agruparB:4; FOR contador IN primero..ultimo LOOP INSERT INTO DIM_EDAD (PK, GRUPO) SELECT contador, FOR variable IN primero..ultimo/agrupar CASE WHEN contador between agruparA and agruparB THEN variable+1; agruparA = agruparA +5; agruparB = agruparB + 5; END; FROM DUAL; END LOOP; END;
gracias