Ich habe eine Tabelle, wie die nächste Zeile der vorherigen Zeile der Spalte Wert verwenden Spalte Wert für die Berechnung
Id | Aisle | OddEven | Bay | Size | Y-Axis 3 | A1 | Even | 14 | 10 | 100 1 | A1 | Even | 16 | 10 | 6 | A1 | Even | 20 | 10 | 12 | A1 | Even | 26 | 5 | 150 10 | A1 | Even | 28 | 5 | 11 | A1 | Even | 32 | 5 | 2 | A1 | Odd | 13 | 10 | 100 5 | A1 | Odd | 17 | 10 | 4 | A1 | Odd | 19 | 10 | 9 | A1 | Odd | 23 | 5 | 150 7 | A1 | Odd | 25 | 5 | 8 | A1 | Odd | 29 | 5 |
wie diese
Id | Aisle | OddEven | Bay | Size | Y-Axis 1 | A1 | Even | 14 | 10 | 100 2 | A1 | Even | 16 | 10 | 110 3 | A1 | Even | 20 | 10 | 120 4 | A1 | Even | 26 | 5 | 150 5 | A1 | Even | 28 | 5 | 155 6 | A1 | Even | 32 | 5 | 160 7 | A1 | Odd | 13 | 10 | 100 8 | A1 | Odd | 17 | 10 | 110 9 | A1 | Odd | 19 | 10 | 120 10 | A1 | Odd | 23 | 5 | 150 11 | A1 | Odd | 25 | 5 | 155 12 | A1 | Odd | 29 | 5 | 160
ich eine Auswahlabfrage und Update-Abfrage benötigen zu suchen. Was es tut sind bereits einige Y-Axis Number gefüllt (am Anfang der Odd/Even), dann muss ich den Wert der Y-Axis-Spalte der vorherigen Zeile nehmen und addiert die aktuelle Zeilengröße, die = zu aktuellen Y- Achse. Muss dies solange tun, bis eine andere Y-Achse den Wert hat, der die Berechnung überspringt und die nächste Zeile diese Nummer verwendet.
Mein Denkprozess ist dies:
Id auf jeden Fall verwendet werden, wird jedoch die Id ist nicht als Folge meinem Beispiel gezeigt
so brauche ich
ROW_NUMBER OVER (PARTITION BY Aisle haben , OddEven, Bay Sortieren nach Aisle, OddEven, Bay)
Dann eine Art die gleiche Tabelle JOIN aber die ON ist T1.RN = T2.RN - 1
Wo ich feststecke ist aber die erste Zeile hat keinen vorherigen Wert es wird versuchen diesen Wert zu aktualisieren.
Jeder hat eine Idee für SQL Query 2008 für Select und Update wird sehr geschätzt werden! Vielen Dank.
Amazing Code !!! –
wäre nett, wenn Sie diese auch beantworten könnten: http://stackoverflow.com/questions/38731400/sql-accumulative-columns-sum-across-the-row –
@DavidChen Ich werde einen Blick in 30 Minuten werfen –