Ho una tabella con 4 colonne: Elemento, Anno, Mese, Quantità. Alcuni valori di Amount sono nulli e quando ciò accade, voglio riempire quei valori con il valore Amount precedente che non è nullo. Posso farlo facilmente con la funzione LAG quando c'è solo un valore nullo, ma quando ci sono più file in una riga non sono sicuro di come affrontarlo. Di seguito è riportato un esempio di ciò che il tavolo potrebbe essere simile con una colonna aggiunto per quello che voglio aggiungere la mia domanda:Immettere valori null con l'ultimo importo non null - Oracle SQL
Item | Year | Month | Amount | New_Amount
AAA | 2013 | 01 | 100 | 100
AAA | 2013 | 02 | | 100
AAA | 2013 | 03 | 150 | 150
AAA | 2013 | 04 | 125 | 125
AAA | 2013 | 05 | | 125
AAA | 2013 | 06 | | 125
AAA | 2013 | 07 | | 125
AAA | 2013 | 08 | 175 | 175
ho avuto due idee che non riesco a mettersi al lavoro per la produzione di quello che ho volere. In primo luogo stavo per usare il LAG ma poi ho notato che quando ci sono più valori nulli in una riga non lo soddisferà. Successivamente stavo per utilizzare FIRST_VALUE ma questo non sarebbe d'aiuto in questa situazione in cui c'è un null seguito da valori seguiti da più null. C'è un modo per utilizzare FIRST_VALUE o un'altra funzione simile per recuperare l'ultimo valore non null?
Grazie, questo ha funzionato perfettamente, l'ultima parte tra illimitato precedente e 1 precedente è qualcosa che non capisco completamente, ti dispiacerebbe spiegare che cosa fa? – user1723699
@ user1723699 Ho aggiornato la mia risposta. È possibile leggere la documentazione Oracle su WINDOWING nelle funzioni analitiche. – Multisync
Grazie, ho una breve familiarità con il windowing, ma sto ancora imparando, dato che sono completamente autodidatta e non ho un forte background di programmazione. Questo ha funzionato come un fascino, quindi lo apprezzo molto. – user1723699