Frage : SQL

Ich möchte die 2. Reihe, die 0 z.Z. mit dem Durchschnitt von 145 und von 165 oder hat die Reihen über und unterhalb jedem möglichem Feld aktualisieren, das einen nullwert hat.  Ich möchte einen nullwert durch das aveage der Felder über ersetzen und unter dem nullfield.
Currently kann ich nur denken, um einen CURSOR und eine Bewegung auf und ab die Tabelle zu verwenden, die Mathe von
Field2 = durchführt (field1 + field3) * .5, das der nullwert während der column.
The Tabelle verbreitet werden kann hat nur 24 Aufzeichnungen, da es die Gesamtmenge ist, die nach Stunde des Tages gegründet wird.
Volume
145
0
165

Antwort : SQL

Das sollte gewesen sein

Update tbl
Volumen einstellen = (auserwähltes avg (b.volume) von tbl b wo b.hr=tbl.hr-1 oder b.hr=tbl.hr+1)
wo Volumen = 0

Dieses ist jedoch zu stark vereinfacht, aber es kann Ihren Notwendigkeiten entsprechen. Es ist stark vereinfacht, weil:

Wenn Ihre erste Stunde 0 hat, kopiert sie den Wert direkt von der folgenden Stunde, da es keine Daten prior gibt.
Wenn Sie zwei haben oder nachfolgendere null, beenden Sie oben mit etwas niedrigen bewerteten Daten.  Dieses Beispiel von vor oder nach sehen.

Stunde/vor oder nach
0/10/10
1/0/5
2/0/0
3/0/15
4/30/30
5/10/10
6/0/15
7/20/20
Weitere Lösungen  
 
programming4us programming4us