Fråga : SQL

Jag skulle något liknande för att uppdatera 2nd ror som har för närvarande 0 med genomsnittet av 145 och 165, eller ror ovannämnt, och nedanfört sätta in any som har en nolla att värdera.  Jag önskar att byta ut en nolla värderar med aveagen av sätter in ovannämnt, och nedanfört nollfield.Currently jag kan endast funderare använda en MARKÖR och en flyttning uppåt- och neråt bordlägga som utför mathen av
Field2 = (field1 + field3) * .5 som nollan värderar kan vara den spridda alltigenom, column.The bordlägger ska har endast 24 rekord, som det är slutsumman som baseras på timme av dagen.
Volume
145
0
165
" klar "

Svar : SQL

Det bör ha varit

uppdateringtbl
fastställd volym = (vald avg (b.volume) från tbl b var b.hr=tbl.hr-1 eller b.hr=tbl.hr+1)
var volym = 0

Detta är för alltför förenklat emellertid, men den kan passa dina behov. Det är alltför förenklat, därför att:

Om din första timme har 0, den att ska kopierar värdera direkt från den nästa timmen, sedan det inte finns några föregående data.
Om du har nollor två eller mer i rad, du ska avslutar upp med några låga värderade data.  Se detta exempel av för/after.

Timme/för/after
0/10/10
1/0/5
2/0/0
3/0/15
4/30/30
5/10/10
6/0/15
7/20/20
Andra lösningar  
 
programming4us programming4us