Atualizar registro com a linha anterior

Eu tenho uma situação em que preciso atualizar os registros com o valor da linha anterior.

Fonte:

|MatId | BaseId |Flag|Pkg1| CS1
--------------------------------
|3001  | 3001   | 1  | 20 | 2 |
|3002  | 3001   | 0  | 15 | 3 |
|3003  | 3001   | 0  | 10 | 4 |

Aqui os dois 3001 (MatID) e 3001 (BaseID) são os mesmosFLAG = 1, apenas no próximo registroBASEID é igual. A saída deve serPKG1 campo atualizado com o valor da linha atual.

Alvo ou saída:

|MatId | BaseId|Flag|Pkg1|CS1
------------------------------
|3001  | 3001  | 1  | 20 | 2|
|3002  | 3001  | 0  | 20 | 3|
|3003  | 3001  | 0  | 20 | 4|

Como visto no destino acima, tenho que atualizar os dois valores em PKG1 com o valor do primeiro registro 20. Também existem muitas colunas com o Pkg1, como atualizar todas as colunas com uma única consulta?

Qualquer ajuda é muito apreciada.
Obrigado.

questionAnswers(2)

yourAnswerToTheQuestion