Précédent   Forum des professionnels en informatique > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/12/2010, 09h54   #1
Provisoirement toléré
 
Inscription : avril 2007
Messages : 548
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 548
Points : 48
Points : 48
Par défaut Différence entre deux champs de deux tables

bonjour tout le monde

j'ai deux tables table1 et table 2
je veux faire la soustraction deux champs de deux table
voila un exemple

Citation:
table 1
code1 montant1
AAA 1239
BBB 1154
CCC 94698
DDD 5464
EEE 8798
FFF 9567
KKK 96565
XXX 46646


table2
code2 montant2
AAA 39
CCC 698
DDD 64
XXX 6646
je cherche une requête qui m'affiche la différence entre montant1 de table1 et montant2 detable2

voila résultat

Citation:
AAA 1200
BBB 1154
CCC 94000
DDD 5400
EEE 8798
FFF 9567
KKK 96565
XXX 40000
minooo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2010, 10h37   #2
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 637
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 637
Points : 2 629
Points : 2 629
Bonjour,

Quelle requête avez-vous essayé ?
punkoff est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2010, 10h43   #3
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Bonjour

sans tester, la requete suivante devrait répondre au problème :
Code sql :
1
2
3
4
 
SELECT montant1 - montant2 AS Difference
FROM Table1
LEFT OUTER JOIN Table2 ON Table1.Code1 = Table2.Code2
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2010, 11h33   #4
Expert Confirmé
 
Homme
Inscription : mai 2002
Messages : 1 637
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : mai 2002
Messages : 1 637
Points : 2 629
Points : 2 629
Selon le sgbd les résultats risquent d'être folklo.

Valeur - NULL = ?

il faudrait rajouter une clause COALESCE sur le montant2.
punkoff est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/12/2010, 11h38   #5
Membre confirmé
 
Homme AbdelRaouf Gt
Développeur informatique
Inscription : décembre 2009
Messages : 203
Détails du profil
Informations personnelles :
Nom : Homme AbdelRaouf Gt
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2009
Messages : 203
Points : 238
Points : 238
remarque dans sa place.
bien dit punkoff
aguetat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2010, 13h54   #6
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Arfff

oui effectivement, j'étais parti sur un INNER JOIN à la base, puis j'ai remplacé par OUTER quand j'ai regardé plus attentivement le résultat attendu...

merci punkoff

ca donne donc :
Code sql :
1
2
3
4
5
 
 
SELECT montant1 - COALESCE(montant2, 0) AS Difference
FROM Table1
LEFT OUTER JOIN Table2 ON Table1.Code1 = Table2.Code2
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h19.


 
 
 
 
Partenaires

Hébergement Web