operations en sql - SQL/NoSQL - Programmation
Marsh Posté le 21-12-2004 à 15:42:30
Of course ! 
 
Select a.tot - b.tot  
from matablea a inner join matableb b  
on a.cle = b.cle 
 
ou 
 
Select a.tot - b.tot  
from matablea a, matableb b  
where a.cle = b.cle
Marsh Posté le 21-12-2004 à 15:45:49
| vttman2 a écrit : Of course !  | 
 
je suis pas sûr que c'est ce qu'il voulait dire par "total"...![[:dawa] [:dawa]](https://forum-images.hardware.fr/images/perso/dawa.gif)
Marsh Posté le 21-12-2004 à 16:10:43
merci d'avoir répondu 
je m'explique plus clairement: 
en fait, j'ai une table recettes et une table dépenses avec dans chacune de ces tables un champ montant_ht. 
j'aimerais donc faire une requete qui me donne le résultat montant ht de la table recettes - montant ht de la table dépenses. 
Marsh Posté le 21-12-2004 à 16:11:45
select (r.montant_ht - d.montant_ht) 
from recettes r, depenses d 
 
[edit] 
 
Ceci était une grosse connerie...![[:joce] [:joce]](https://forum-images.hardware.fr/images/perso/joce.gif)
Marsh Posté le 21-12-2004 à 16:22:39
[quote] 
select (r.montant_ht - d.montant_ht)  
from recettes r, depenses d 
 
désolé je n'est pas eu le résultat attendu 
 
il m'a afficher tout plein de chiffre ... 
 
moi j'avais pensé à faire un select sum les champs montant_ht de la table recettes puis de la table dépenses et de soustraire le résultat mais j'arrive pas à récuperer les résultat des deux select sum... 
en tout cas merci de m'aider
Marsh Posté le 21-12-2004 à 16:26:22
Tu avais pas précisé la somme des colonnes dans ton post précédent... 
 
En plus je réalise que ma réponse est stupide... 
Marsh Posté le 21-12-2004 à 16:29:55
Ca doit être faisable avec un truc du style 
| Code : 
 | 
 
 
Mais je peux me tromper...![[:joce] [:joce]](https://forum-images.hardware.fr/images/perso/joce.gif)
Marsh Posté le 21-12-2004 à 16:47:29
non ...ça ne fonctionne pas . 
mais je me demande si ma vesion de mysqm supporte les requêtes imbriquées ...
Marsh Posté le 21-12-2004 à 16:48:12
| tchouvince a écrit : non ...ça ne fonctionne pas .  | 
 
quelle version?
Marsh Posté le 21-12-2004 à 16:51:41
ahhhhhhh non ça marchera pas. 
Je ne vois pas de solution là-dessus en 1 requête...
Marsh Posté le 21-12-2004 à 17:27:01
| tchouvince a écrit : et avec la 4.0.23 ça marchera ? | 
 
à partir de 4.11 les requêtes imbriquées si mes souvenirs sont bons.
Marsh Posté le 21-12-2004 à 17:27:28
Sinon tu peux le faire en 2 fois, non? 
Marsh Posté le 21-12-2004 à 17:30:48
4.11 ? ok  
sinon je vais tenter en deux fois 
 
en tout cas merci beaucoup de ton aide
Marsh Posté le 21-12-2004 à 17:59:36
et pourquoi pas un truc du genre:  
| Code : 
 | 
Marsh Posté le 21-12-2004 à 18:52:02
| Citation :   | 
 
 
ça marche pas mais à mon avis c'est la bonne voie 
je pense qu'il manque un truc mais je sais pas encore koi. 
en tout cas merci de ton aide
Marsh Posté le 21-12-2004 à 20:34:27
non, ça marchera pas je pense, ça va faire un produit cartésien (en gros renvoyer toutes les combinaisons de lignes des deux tables) et sommer sur toutes ces lignes ! 
 
Il faut faire les 2 select à la suite et faire la soustraction, plutôt que de se casser la tête à essayer de tout faire en une requête (ce qui ne simplifie rien, n'est pas plus rapide, etc.).
Marsh Posté le 21-12-2004 à 20:41:06
| Code : 
 | 
 
 
et ensuite, dans le code, la soustraction ...
Marsh Posté le 23-12-2004 à 11:00:38
ça y'est j'ai enfin trouvé comment faire en sql. 
pour ceux que ça interesse voici le code : 
 
CREATE TABLE prov TYPE=HEAP select sum(montant_ht) as sp from recettes union select sum(montant_ht) as sp from depenses; 
 select max(sp) - min(sp) FROM prov; 
 
et voila le tour est joué !
Marsh Posté le 23-12-2004 à 11:07:36
| tchouvince a écrit : ça y'est j'ai enfin trouvé comment faire en sql.  | 
 ![[:el g] [:el g]](https://forum-images.hardware.fr/images/perso/el g.gif) 
 
Tu le fais en 2 fois, exactement comme je te disais, donc...![[:dawa] [:dawa]](https://forum-images.hardware.fr/images/perso/dawa.gif)
Marsh Posté le 23-12-2004 à 11:38:19
eh oui ! tu avais raison ! mais à propos tu sais pas si il existe un truc comme select sum pour soustraire et non additionner ?
Marsh Posté le 23-12-2004 à 11:41:05
| tchouvince a écrit : eh oui ! tu avais raison ! mais à propos tu sais pas si il existe un truc comme select sum pour soustraire et non additionner ? | 
 ![[:urd] [:urd]](https://forum-images.hardware.fr/images/perso/urd.gif) 
 
sum(-(tontrucàsoustraire)) ? ![[:autobot] [:autobot]](https://forum-images.hardware.fr/images/perso/autobot.gif)
Marsh Posté le 23-12-2004 à 11:54:11
| tchouvince a écrit : non, ça fait l'addition et ça met un - devant ! | 
 
...bah c'est pas ce que tu veux? ![[:opus dei] [:opus dei]](https://forum-images.hardware.fr/images/perso/opus dei.gif)
Marsh Posté le 23-12-2004 à 21:28:14
no ce que je veux c'est par exemple 50-20=30 
avec sum(-(tontrucàsoustraire)) , ça afficherai dans ce cas -70! voila
Marsh Posté le 23-12-2004 à 21:35:59
| tchouvince a écrit : no ce que je veux c'est par exemple 50-20=30  | 
 
Alors tu peux pas...si tu gardes la méthode précédente il suffit d'insérer directement les valeurs négatives dans ta table temporaire...
Marsh Posté le 21-12-2004 à 14:26:05
Salut à tous,
en fait je voulais savoir si il était possible de faire la soustraction des totaux de deux tables avec mysql.
Merci