J'arrive pas à faire une soustraction pour trouver le solde
Résolu/Fermé
NanoDev
Messages postés
13
Date d'inscription
lundi 20 février 2017
Statut
Membre
Dernière intervention
27 mai 2019
-
Modifié par NanoDev le 26/02/2017 à 10:33
NanoDev Messages postés 13 Date d'inscription lundi 20 février 2017 Statut Membre Dernière intervention 27 mai 2019 - 27 févr. 2017 à 14:38
NanoDev Messages postés 13 Date d'inscription lundi 20 février 2017 Statut Membre Dernière intervention 27 mai 2019 - 27 févr. 2017 à 14:38
A voir également:
- Soustraction sql
- Récupération serveur sql - Télécharger - Gestion de données
- Sql lister les tables ✓ - Forum Programmation
- Addition et soustraction dans la meme formule excel - Forum Excel
- Soustraction en anglais excel ✓ - Forum Excel
- Sql soustraction entre 2 tables - Forum Webmastering
1 réponse
yg_be
Messages postés
22717
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 avril 2024
1 474
Modifié par yg_be le 26/02/2017 à 11:48
Modifié par yg_be le 26/02/2017 à 11:48
bonjour, moi je supprimerais
EC_Sensdu
GROUP BY, et je ferais:
SUM((2*EC_Sens-1)*EC_Montant) AS SOLDE
26 févr. 2017 à 12:00
ou utiliser Ec_sens dans le group by puisqu'il contient soit 1 soit 2, donc je pensais qu'il fallait aussi le supprimer du select.
Votre proposition fonctionne à merveille ! Je n'en reviens pas !
Merci mille fois, vous êtes un professionnel de SQL ?
26 févr. 2017 à 12:12
27 févr. 2017 à 12:43
J'ai modifié la requête ainsi et qui fonctionne pour éviter d'avoir des valeur de solde à 0, pas si simple car on ne peut pas utiliser l'alias SOLDE dans le Where... Mais j'aimerai bien comprendre précisément la ligne suivante,
à quoi correspond le 2 l'étoile, le -1 ?
Modifié par yg_be le 27/02/2017 à 13:25
l'étoile est l'opérateur de multiplication, le moins l'opérateur de soustraction.
2*EC_Sens-1 correspond donc à: deux fois EC_Sens moins un
cela donne +1 pour un crédit, -1 pour un débit
en faisant (2*EC_Sens-1)*EC_Montant, on multiplie le résultat précédent (+1 ou -1) par EC_Montant: cela donne EC_Montant pour un crédit, et moins EC_Montant pour un débit.
on fait ensuite la somme des produits
27 févr. 2017 à 14:38
=(2*1)-1 donne 1 comme résultat 2 étant le multiplicateur, 1 la valeur de EC_sens
ce qui donne 1
=(2*0)-1 donne -1 comme résultat, 2 étant le multiplicateur, 0 la valeur de Ec_sens
ce qui donne - 1
et 1 * 1000 donne 1000
alors que -1 * 1000 donne -1000
J'avais jamais vu ce genre de fonction dans le SELECT et pourtant j'ai des livres,
Merci beaucoup, c'est très sympa à vous !