Pergunta : SQL

Eu gostaria de atualizar a �a fileira que tem atualmente 0 com a média de 145 e de 165 ou as fileiras acima e abaixo de todo o campo que tiver um valor zero.  Eu quero substituir um valor zero com o aveage dos campos acima de e abaixo do field.
Currently eu posso somente pensar para usar um CURSOR e para mover a tabela que executa a matemática do
Field2 = (field1 + field3) * .5 que o valor zero pode ser espalhado durante todo a tabela de column.
The terá somente 24 registros porque é o total baseado na hora do dia.
Volume
145
0
165
class= do

Resposta : SQL

Isso deve ter sido

tbl da atualização
ajustar o volume = (avg seleto (b.volume) do tbl b onde b.hr=tbl.hr-1 ou b.hr=tbl.hr+1)
onde volume = 0

Isto é demasiado simplista entretanto, mas pode serir suas necessidades. É simplista porque:

Se sua primeira hora tem 0, copiará o valor diretamente da próxima hora desde que não há nenhum dados previamente.
Se você tem zero dois ou mais consecutivos, você terminará acima com alguns baixos dados avaliados.  Ver este exemplo de antes ou depois de.

Hora/antes ou depois de
0/10/10
1/0/5
2/0/0
3/0/15
4/30/30
5/10/10
6/0/15
7/20/20
Outras soluções  
 
programming4us programming4us