C'est difficile de répondre sans avoir la structure de la table, et sans savoir ce que veut dire exactement "prennent la valeur du dernier champs non vide avant eux." La notion d'antériorité est très relative. Est-ce que les enregistrements ont un champ date et heure, ou un numéro automatique ?
Nonobstant, la requête pourra ressembler à ceci :
INSERT INTO la_table T1 (col1, col2)
VALUES(1234,
SELECT col2 FROM la_table T2
WHERE T2.col1 = T1.col1 - 1); |
Mais le calcul de l'antériorité peut être plus complexe que mon col1 - 1, et donc il faudrait peut-être adopté une solution en deux étapes : d'abord récupérer l'enregistrement antérieur, et ensuite faire l'insertion.