Comment puis-je soustraire une ligne précédente en SQL?
Que dois-je interroger si je voulais soustraire la ligne actuelle de la rangée précédente. Je vais l'utiliser sur une boucle dans vb6.
Quelque chose Comme ceci:
Row
1
2
3
4
5
Sur la première boucle, la valeur 1 ne seront pas déduits, car il n'a pas de ligne précédente, ce qui est ok.
À côté de la boucle de la valeur 2 est alors déduite par la rangée précédente qui est de la valeur 1. Et ainsi de suite jusqu'à la dernière ligne.
Comment puis-je réaliser cette routine?
Par requête SQL ou de code VB6.Toute volonté de le faire.
source d'informationauteur ImTheBoss
Vous devez vous connecter pour publier un commentaire.
En supposant que vous avez une commande de colonne -- dire
id
-- ensuite, vous pouvez effectuer les opérations suivantes dans SQL Server 2012:Dans les versions antérieures de SQL Server, vous pouvez faire presque la même chose en utilisant une sous-requête corrélée:
Il utilise
isnull()
au lieu decoalesce()
à cause d'un "bug" dans SQL Server qui prend la valeur du premier argument à deux reprises lors de l'utilisation decoalesce()
.Vous pouvez aussi le faire avec
row_number()
:Tous ces supposons que vous avez une colonne pour la spécification de la commande. Il pourrait être un
id
ou la date de création ou de quelque chose d'autre. Les tables SQL sont intrinsèquement non-ordonnée, donc il n'y a pas une telle chose comme une "ligne précédente" sans une colonne de la spécification de la commande.L'Aide Du Curseur: