Je dois calculer la différence entre les valeurs de ligne dans le tableau X (SQL Server)
Tableau x P> donc j'ai écrit la requête SQL suivante P> et le résultat est p> ce que je veux, c'est de garder la différence de première rangée toujours comme 0 p> ID A Difference
1 100 0
2 200 -100
3 300 -100
4 400 -100
3 Réponses :
Vous pouvez essayer la requête suivante.
pour ce type de requête Démo en direct P> P> La clause de la commande code> est importante basée sur la colonne et la commande
appliquée par code> clause
Ascendant code> ou
descendant code> Le résultat peut être différent. p>
Vous pouvez essayer de passer la valeur ð ° pour le paramètre code> par défaut code> de la fonction de fenêtre code> code> fenêtre. Comme il est expliqué dans Documentation , le paramètre code> par défaut code> est la valeur pour revenir lorsque le décalage est au-delà de la portée de la partition em> (et pour la première rangée, la La ligne précédente est au-delà de cette portée). Table: P> ID A Difference
------------------
1 100 0
2 200 -100
3 300 -100
4 400 -100
Merci à @zhorov pour le schéma de la table, les données
Vous pouvez utiliser Isnull ou Coalise pour arriver à la différence. P>
+----+-----+------------+ | ID | A | difference | +----+-----+------------+ | 1 | 100 | 100 | | 2 | 200 | 100 | | 3 | 300 | 200 | | 4 | 400 | 300 | +----+-----+------------+
Il suffit d'envelopper l'expression entière d'expression
A - a) ... code> à l'intérieur du
coalesce () code>.