Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1370 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  operations en sql

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

operations en sql

n°929178
tchouvince
Posté le 21-12-2004 à 14:26:05  profilanswer
 

Salut à tous,
en fait je voulais savoir si il était possible de faire la soustraction des totaux de deux tables avec mysql.
Merci

mood
Publicité
Posté le 21-12-2004 à 14:26:05  profilanswer
 

n°929268
vttman2
Je suis Open ...
Posté le 21-12-2004 à 15:42:30  profilanswer
 

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

n°929272
skeye
Posté le 21-12-2004 à 15:45:49  profilanswer
 

vttman2 a écrit :

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


je suis pas sûr que c'est ce qu'il voulait dire par "total"...[:dawa]


---------------
Can't buy what I want because it's free -
n°929304
tchouvince
Posté le 21-12-2004 à 16:10:43  profilanswer
 

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.

n°929305
skeye
Posté le 21-12-2004 à 16:11:45  profilanswer
 

select (r.montant_ht - d.montant_ht)
from recettes r, depenses d
 
[edit]
 
Ceci était une grosse connerie...[:joce]


Message édité par skeye le 21-12-2004 à 16:26:49

---------------
Can't buy what I want because it's free -
n°929318
tchouvince
Posté le 21-12-2004 à 16:22:39  profilanswer
 

[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

n°929323
skeye
Posté le 21-12-2004 à 16:26:22  profilanswer
 

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... :whistle:


---------------
Can't buy what I want because it's free -
n°929326
skeye
Posté le 21-12-2004 à 16:29:55  profilanswer
 

Ca doit être faisable avec un truc du style

Code :
  1. select sum(montant) as total
  2. from
  3. (
  4. select sum(montant_ht) as montant
  5. from recettes
  6. union
  7. select sum(0 - montant_ht) as montant
  8. from depenses
  9. )


 
Mais je peux me tromper...[:joce]


---------------
Can't buy what I want because it's free -
n°929327
tchouvince
Posté le 21-12-2004 à 16:30:28  profilanswer
 

c'est pas grave ...

n°929340
tchouvince
Posté le 21-12-2004 à 16:47:29  profilanswer
 

non ...ça ne fonctionne pas .
mais je me demande si ma vesion de mysqm supporte les requêtes imbriquées ...

mood
Publicité
Posté le 21-12-2004 à 16:47:29  profilanswer
 

n°929341
skeye
Posté le 21-12-2004 à 16:48:12  profilanswer
 

tchouvince a écrit :

non ...ça ne fonctionne pas .
mais je me demande si ma vesion de mysqm supporte les requêtes imbriquées ...


quelle version?


---------------
Can't buy what I want because it's free -
n°929344
tchouvince
Posté le 21-12-2004 à 16:50:20  profilanswer
 

j'ai la mysql-3.23.54a-11

n°929346
skeye
Posté le 21-12-2004 à 16:51:41  profilanswer
 

ahhhhhhh non ça marchera pas.
Je ne vois pas de solution là-dessus en 1 requête...


---------------
Can't buy what I want because it's free -
n°929374
tchouvince
Posté le 21-12-2004 à 17:24:28  profilanswer
 

et avec la 4.0.23 ça marchera ?

n°929375
skeye
Posté le 21-12-2004 à 17:27:01  profilanswer
 

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.


---------------
Can't buy what I want because it's free -
n°929376
skeye
Posté le 21-12-2004 à 17:27:28  profilanswer
 

Sinon tu peux le faire en 2 fois, non? :??:


---------------
Can't buy what I want because it's free -
n°929377
tchouvince
Posté le 21-12-2004 à 17:30:48  profilanswer
 

4.11 ? ok  
sinon je vais tenter en deux fois
 
en tout cas merci beaucoup de ton aide

n°929407
APLC
Corporation & Company Ltd
Posté le 21-12-2004 à 17:59:36  profilanswer
 

et pourquoi pas un truc du genre:  

Code :
  1. SELECT SUM(r.montant_ht)-SUM(d.montant_ht) AS total
  2. FROM recettes r, depenses d

n°929439
tchouvince
Posté le 21-12-2004 à 18:52:02  profilanswer
 

Citation :


Code :
 
SELECT SUM(r.montant_ht)-SUM(d.montant_ht) AS total  
FROM recettes r, depenses d
 


 
ç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

n°929485
Beegee
Posté le 21-12-2004 à 20:34:27  profilanswer
 

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.).

n°929490
tchouvince
Posté le 21-12-2004 à 20:39:12  profilanswer
 

et donc tu ferais comment toi ?

n°929491
Beegee
Posté le 21-12-2004 à 20:41:06  profilanswer
 

Code :
  1. SELECT SUM(r.montant_ht) AS recettes
  2. FROM recettes r;
  3. SELECT SUM(d.montant_ht) AS depenses
  4. FROM depenses d;


 
et ensuite, dans le code, la soustraction ...

n°929745
tchouvince
Posté le 22-12-2004 à 09:37:36  profilanswer
 

ok merci. Je vais essayer de faire ça en php

n°930739
tchouvince
Posté le 23-12-2004 à 11:00:38  profilanswer
 

ç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é !

n°930745
skeye
Posté le 23-12-2004 à 11:07:36  profilanswer
 

tchouvince a écrit :

ç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é !


[:el g]
Tu le fais en 2 fois, exactement comme je te disais, donc...[:dawa]


---------------
Can't buy what I want because it's free -
n°930795
tchouvince
Posté le 23-12-2004 à 11:38:19  profilanswer
 

eh oui ! tu avais raison ! mais à propos tu sais pas si il existe un truc comme select sum pour soustraire et non additionner ?

n°930800
skeye
Posté le 23-12-2004 à 11:41:05  profilanswer
 

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]
sum(-(tontrucàsoustraire)) ? [:autobot]


Message édité par skeye le 23-12-2004 à 11:41:15

---------------
Can't buy what I want because it's free -
n°930821
tchouvince
Posté le 23-12-2004 à 11:51:08  profilanswer
 

non, ça fait l'addition et ça met un - devant !

n°930825
skeye
Posté le 23-12-2004 à 11:54:11  profilanswer
 

tchouvince a écrit :

non, ça fait l'addition et ça met un - devant !


...bah c'est pas ce que tu veux? [:opus dei]


---------------
Can't buy what I want because it's free -
n°931241
tchouvince
Posté le 23-12-2004 à 21:28:14  profilanswer
 

no ce que je veux c'est par exemple 50-20=30
avec sum(-(tontrucàsoustraire)) , ça afficherai dans ce cas -70! voila

n°931246
skeye
Posté le 23-12-2004 à 21:35:59  profilanswer
 

tchouvince a écrit :

no ce que je veux c'est par exemple 50-20=30
avec sum(-(tontrucàsoustraire)) , ça afficherai dans ce cas -70! voila


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...


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  operations en sql

 

Sujets relatifs
Types Abstraits de Données(defs des operations de base pour les listesOperations sous Dos
Analyse syntaxique d'opérations mathématiques[MYSQL] Opérations sur PhpMyAdmin
[C] operations en ANSI ?Comment faire des operations sur des dates?
Opérations sur des dates[Java3D] Opérations booléennes
[C#] Opérations entre formsi[delphi 5]opérations
Plus de sujets relatifs à : operations en sql


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR