Vraag : SQL

Ik zou de 2de rij willen bijwerken die momenteel 0 met het gemiddelde van 145 en 165 of de rijen boven en onder om het even welk gebied heeft dat een nul waarde heeft.  Ik wil een nul waarde met aveage van de gebieden boven en onder nul field.
Currently vervangen ik slechts kan denken om zich een CURSEUR te gebruiken en boven en beneden de lijst te bewegen uitvoerend math van
Field2 = (field1 + field3) * .5 de nul waarde door de column.
The- lijst kan worden uitgespreid zal hebben slechts 24 die verslagen aangezien het het totaal op uur van dag wordt gebaseerd is.
Volume
145
0
165

Antwoord : SQL

Dat zou moeten geweest zijn

update tbl
vastgesteld volume = (selecteer avg (b.volume) uit tbl B waar b.hr=tbl.hr-1 of b.hr=tbl.hr+1)
waar volume = 0

Dit is te simplistisch nochtans, maar het kan uw behoeften aanpassen. Het is simplistisch omdat:

Als uw eerste uur 0 heeft, zal het direct de waarde van het volgende uur kopiëren aangezien er geen vroeger gegeven is.
Als u twee hebt of meer opeenvolgend centreert, zult u omhoog met sommige lage getaxeerde gegevens beëindigen.  Zie daarna dit voorbeeld van vóór/.

U/Vóór/daarna
0/10/10
1/0/5
2/0/0
3/0/15
4/30/30
5/10/10
6/0/15
7/20/20
Andere oplossingen  
 
programming4us programming4us