2010-07-27 6 views
2

J'ai les données indiquées dans le tableau ci-dessousRequête SQL pour obtenir la différence entre une valeur d'une ligne et une autre valeur

| ItemNo | Date | Valeur |
--------------------------
| 101 | 201002 | 5 |
| 102 | 201002 | 3 |
| 201 | 201002 | 7 |
| 202 | 201002 | 2 |

| 101 | 201003 | 6 |
| 102 | 201003 | 3 |
| 201 | 201003 | 7 |
| 202 | 201003 | 1 |

Résultat attendu
ArticleNo | Date | Valeur |
--------------------------
| 100 | 201002 | 2 |
| 200 | 201002 | 5 |
| 100 | 201003 | 3 |
| 200 | 201003 | 6 |

Désolé pour le format. Je l'ai reformaté maintenant. J'essaie d'obtenir la différence en Valeur entre les Articles 101 et 102 pour la Date 201002. Est-ce possible? Toute aide est grandement appréciée.

+0

Pouvez-vous reformater que les balises de code il est lisible? – JNK

+0

OK maintenant qu'il est lisible, pouvez-vous expliquer quelle fonction vous voulez exécuter? Est-ce que vous soustrayez le 102 de 101 et 202 de 201? – JNK

+0

Voulez-vous associer deux rangées et obtenir une rangée qui sera la différence de deux rangées ????? –

Répondre

1

Utilisez un autojointure:

SELECT 
    T1.ItemNo - 1 AS ItemNo, 
    T1.Date, 
    T1.Value - T2.Value AS Value 
FROM table1 T1 
JOIN table1 T2 
ON T1.Date = T2.Date 
AND T1.ItemNo + 1 = T2.ItemNo 
+0

Modification mineure - Devrait être "t1.value - t2.value comme valeur" - la soustraction était dans le mauvais sens. –

+0

Merci les gars ... C'était ce dont j'avais besoin ... – fooman

+0

@Neil Moss: Merci. Fixé. –

Questions connexes