Questione : SQL

Vorrei aggiornare la seconda fila che attualmente ha 0 con la media di 145 e di 165 o le file sopra e sotto tutto il campo che ha un valore zero.  Voglio sostituire un valore zero con il aveage dei campi sopra e sotto il field.
Currently posso pensare soltanto per usare un CURSORE e un movimento su e giù la tabella che effettua il per la matematica di
Field2 = (field1 + field3) * .5 che il valore zero può essere sparso durante la tabella di column.
The soltanto avrà 24 annotazioni poichè è il totale basato sull'ora del giorno.
Volume
145
0
165
class= del

Risposta : SQL

Quello dovrebbe essere

tbl dell'aggiornamento
regolare il volume = (avg prescelto (b.volume) da tbl b dove b.hr=tbl.hr-1 o b.hr=tbl.hr+1)
dove volume = 0

Ciò è troppo semplicistica tuttavia, ma può essere adatti ai vostri bisogni. È semplicistico perché:

Se la vostra prima ora ha 0, copierà il valore direttamente a partire dall'ora prossima poiché non ci sono prior dati.
Se avete zeri due o più successivi, vi concluderete in su con alcuni dati stimati bassi.  Vedere questo esempio di prima o dopo.

Ora/prima o dopo
0/10/10
1/0/5
2/0/0
3/0/15
4/30/30
5/10/10
6/0/15
7/20/20
Altre soluzioni  
 
programming4us programming4us