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"...
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...
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...
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. |
Tu le fais en 2 fois, exactement comme je te disais, donc...
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 ? |
sum(-(tontrucàsoustraire)) ?
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?
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