Soustraction en SQL ?
julaf_canada
Messages postés
4
Statut
Membre
-
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.
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:
- Sql soustraction
- Logiciel sql - Télécharger - Bases de données
- Excel soustraction avec condition ✓ - Forum Excel
- Jointure sql ✓ - Forum MySQL
- Soustraction en anglais excel ✓ - Forum Excel
- Sql (+) - Forum Programmation
3 réponses
Salut,
Si je comprends bien, il y a toujours des paires de valeurs; du coup, j'essairerais ceci:
Requête avec syntaxe Oracle mais facilement adaptable à d'autres bases (utiliser inner join).
++
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).
++
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
...
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
...
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
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
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