Actualizar registro con fila anterior

Tengo una situación en la que necesito actualizar los registros con el valor de fila anterior.

Fuente:

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

Aquí ambos 3001 (MatID) y 3001 (BaseID) son lo mismoFLAG = 1, solo en el siguiente registroBASEID es igual. La salida debe sersolamentePKG1 campo actualizado con el valor de fila actual.

Objetivo o salida:

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

Como se ve en el objetivo anterior, tengo que actualizar los dos valores en PKG1 con el valor del primer registro 20. También hay muchas columnas con Pkg1, ¿cómo actualizar todas las columnas con una sola consulta?

Cualquier ayuda es muy apreciada.
Gracias.

Respuestas a la pregunta(2)

Su respuesta a la pregunta