Vorrei portare il tutto in una procedura che sicuramente non richiedera' tutto sto codice ma con due for credo si risolva. Purtroppo non sono in grado di generarla, e proprio per questo spero di trovare un anima pia che mi aiuti e mi illumini un pò. Come potete vedere il risultato che voglio gia' lo ottengo. Grazie a tutti ciao!codice:FROM totale.tot) WHERE xx IS NOT NULL) WHEN ROWNUM = 13 THEN (SELECT xx FROM (SELECT ROUND (AVG (CASE WHEN ROWNUM > 6 AND ROWNUM < 14 THEN ripetuti END ), 0 ) AS xx FROM totale.tot) WHERE xx IS NOT NULL) WHEN ROWNUM = 14 THEN (SELECT xx FROM (SELECT ROUND (AVG (CASE WHEN ROWNUM > 7 AND ROWNUM < 15 THEN ripetuti END ), 0 ) AS xx FROM totale.tot) WHERE xx IS NOT NULL) WHEN ROWNUM = 15 THEN (SELECT xx FROM (SELECT ROUND (AVG (CASE WHEN ROWNUM > 8 AND ROWNUM < 16 THEN ripetuti END ), 0 ) AS xx FROM totale.tot) WHERE xx IS NOT NULL) WHEN ROWNUM = 16 THEN (SELECT xx FROM (SELECT ROUND (AVG (CASE WHEN ROWNUM > 9 AND ROWNUM < 17 THEN ripetuti END ), 0 ) AS xx FROM totale.tot) WHERE xx IS NOT NULL) WHEN ROWNUM = 17 THEN (SELECT xx FROM (SELECT ROUND (AVG (CASE WHEN ROWNUM > 10 AND ROWNUM < 18 THEN ripetuti END ), 0 ) AS xx FROM totale.tot) WHERE xx IS NOT NULL) WHEN ROWNUM = 18 THEN (SELECT xx FROM (SELECT ROUND (AVG (CASE WHEN ROWNUM > 11 AND ROWNUM < 19 THEN ripetuti END ), 0 ) AS xx FROM totale.tot) WHERE xx IS NOT NULL) WHEN ROWNUM = 19 THEN (SELECT xx FROM (SELECT ROUND (AVG (CASE WHEN ROWNUM > 12 AND ROWNUM < 20 THEN ripetuti END ), 0 ) AS xx FROM totale.tot) WHERE xx IS NOT NULL) WHEN ROWNUM = 20 THEN (SELECT xx FROM (SELECT ROUND (AVG (CASE WHEN ROWNUM > 13 AND ROWNUM < 21 THEN ripetuti END ), 0 ) AS xx FROM totale.tot) WHERE xx IS NOT NULL) WHEN ROWNUM = 21 THEN (SELECT xx FROM (SELECT ROUND (AVG (CASE WHEN ROWNUM > 14 AND ROWNUM < 22 THEN ripetuti END ), 0 ) AS xx FROM totale.tot) WHERE xx IS NOT NULL) WHEN ROWNUM = 22 THEN (SELECT xx FROM (SELECT ROUND (AVG (CASE WHEN ROWNUM > 15 AND ROWNUM < 23 THEN ripetuti END ), 0 ) AS xx FROM totale.tot) WHERE xx IS NOT NULL) WHEN ROWNUM = 23 THEN (SELECT xx FROM (SELECT ROUND (AVG (CASE WHEN ROWNUM > 16 AND ROWNUM < 24 THEN ripetuti END ), 0 ) AS xx FROM totale.tot) WHERE xx IS NOT NULL) WHEN ROWNUM = 24 THEN (SELECT xx FROM (SELECT ROUND (AVG (CASE WHEN ROWNUM > 17 AND ROWNUM < 25 THEN ripetuti END ), 0 ) AS xx FROM totale.tot) WHERE xx IS NOT NULL) WHEN ROWNUM = 25 THEN (SELECT xx FROM (SELECT ROUND (AVG (CASE WHEN ROWNUM > 18 AND ROWNUM < 26 THEN ripetuti END ), 0 ) AS xx FROM totale.tot) WHERE xx IS NOT NULL) WHEN ROWNUM = 26 THEN (SELECT xx FROM (SELECT ROUND (AVG (CASE WHEN ROWNUM > 19 AND ROWNUM < 27 THEN ripetuti END ), 0 ) AS xx FROM totale.tot) WHERE xx IS NOT NULL) WHEN ROWNUM = 27 THEN (SELECT xx FROM (SELECT ROUND (AVG (CASE WHEN ROWNUM > 20 AND ROWNUM < 28 THEN ripetuti END ), 0 ) AS xx FROM totale.tot) WHERE xx IS NOT NULL) WHEN ROWNUM = 28 THEN (SELECT xx FROM (SELECT ROUND (AVG (CASE WHEN ROWNUM > 21 AND ROWNUM < 29 THEN ripetuti END ), 0 ) AS xx FROM totale.tot) WHERE xx IS NOT NULL) WHEN ROWNUM = 29 THEN (SELECT xx FROM (SELECT ROUND (AVG (CASE WHEN ROWNUM > 22 AND ROWNUM < 30 THEN ripetuti END ), 0 ) AS xx FROM totale.tot) WHERE xx IS NOT NULL) WHEN ROWNUM = 30 THEN (SELECT xx FROM (SELECT ROUND (AVG (CASE WHEN ROWNUM > 23 AND ROWNUM < 31 THEN ripetuti END ), 0 ) AS xx FROM totale.tot) WHERE xx IS NOT NULL) ELSE 0 END AS rolling FROM totale.tot