Calcul des différences de lignes consécutives dans SQL Server 2005
Ce guide montre comment calculer la différence entre des lignes consécutives dans une colonne spécifique de votre base de données SQL Server 2005.
1. Configuration d'un exemple de table :
Commencez par créer un exemple de tableau. Ce tableau contiendra un identifiant entier (rowInt
) et une colonne de valeur (Value
). Notez que les rowInt
valeurs n'ont pas besoin d'être numérotées de manière séquentielle.
2. Récupération des données commandées :
La requête SQL suivante récupère les données, classées par la colonne rowInt
:
<code class="language-sql">SELECT * FROM myTable ORDER BY rowInt;</code>
3. Calculer la différence :
La logique de base réside dans cette requête SQL :
<code class="language-sql">SELECT [current].rowInt, [current].Value, ISNULL((SELECT TOP 1 Value FROM myTable WHERE rowInt > [current].rowInt ORDER BY rowInt), 0) - [current].Value AS Diff FROM myTable AS [current]</code>
Cette requête utilise une sous-requête au sein de la fonction ISNULL
pour trouver efficacement le Value
de la ligne suivante. ISNULL
gère les cas où il n'y a pas de ligne suivante (la dernière ligne), en remplaçant 0 pour éviter les erreurs. La différence (Diff
) est ensuite calculée.
Cette approche fournit une méthode claire et efficace pour calculer la différence entre des lignes consécutives dans votre base de données SQL Server 2005. N'oubliez pas de remplacer myTable
par le nom réel de votre table.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!