Soustraction en SQL ?

julaf_canada Messages postés 4 Statut Membre -  
julaf_canada Messages postés 4 Statut Membre -
Bonjour,

J'ai essaye de chercher dans beaucoup de posts present la solution, mais je reste sans reponses...
Je fais une requete qui me retourne quelque chose du genre :

NOM ID ChargeType Amount
----------------------------------------------------
A 54031 0 5
A 54031 1 2
B 54032 0 6
B 54032 1 5
...

Je voudrais obtenir quelque chose du genre

A 3 (soit ID2-ID1)
B 1 (soit ID4-ID3)
...

Savez-vous quelle est la meilleure solution ?

Je pensais que AND NOT dans la clause WHERE aurait suffit, mais visiblement il ne soustrait pas.

J'ai egalement fait un DECLARE @sum1, DECLARE @sum2... bla bla bla
et a la fin un select @sum1-@sum2 ; le probleme est que pour ca je dois integrer dans le WHERE ID = '54031', mais je veux que le traitement se fasse automatiquement.

Merci d'avance.
A voir également:

3 réponses

sandul Messages postés 4013 Statut Membre 723
 
Salut,

Si je comprends bien, il y a toujours des paires de valeurs; du coup, j'essairerais ceci:
SELECT r1.nom, r1.id, r1.chargeType, r2.amount - r1.amount
FROM ta_requête_qui retourne_les_rows_en_question r1, ta_requête_qui retourne_les_rows_en_question r2
WHERE r1.id = r2.id AND r2.amount > r1.amount


Requête avec syntaxe Oracle mais facilement adaptable à d'autres bases (utiliser inner join).

++
0
julaf_canada Messages postés 4 Statut Membre
 
beh c'est un peu l'idee, le probleme, c'est qu'avec cette requete, ca me retourne quelque chose du genre
a amount(a)
b amount(a)
c amount(a)
...
a amount(b)
b amoun(b)
...

ou alors j'ai manque un truc dans la syntaxe. :S
0
julaf_canada Messages postés 4 Statut Membre
 
mon erreur etait au niveau des jointures dans le second WHERE general.
Seul soucis, c'est que parfois je peut avoir un ID sans differente charge Type
Exemple

NOM ID ChargeType Amount
----------------------------------------------------
A 54031 0 5
A 54031 1 2
B 54032 0 6
B 54032 1 5
C 54033 0 8
D 54034 0 7
...

mon resultat doit alors etre
A 3 (soit ID2-ID1)
B 1 (soit ID4-ID3)
C 8
D 7
...
0
julaf_canada Messages postés 4 Statut Membre
 
un petit up,
Avez vous une idee de comment faire pour soustraire 2 valeurs lorsque la requete retourne deux valeurs pour un ID, mais garder la valeur retournee si elle est unique.

NOM ID ChargeType Amount
----------------------------------------------------
A 54031 0 5
A 54031 1 2
...
C 54033 0 8

Expected Result:
A 3
C 8

Merci
0