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 28/06/2005, 11h18   #1
Membre à l'essai
 
Inscription : avril 2004
Messages : 48
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 48
Points : 20
Points : 20
Par défaut soustraction de 2 tables similaire

Bonjour a tous,

Je sais effectuer le cumul de 2 tables avec cette maniere :

Code :
1
2
3
4
5
6
7
8
9
 
SELECT *
FROM
(SELECT *
 
union ALL
 
SELECT *
) GROUP BY intitule
Ce que je voudrai maintenant c'est pouvoir soustraire les valeurs d'une table "secondaire" sur une "principale" par rapport a l'intitule.

J'espere avoir ete clair.

Merci d'avance.
DaxTaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2005, 11h53   #2
Membre du Club
 
Inscription : décembre 2004
Messages : 82
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 82
Points : 42
Points : 42
avec NOT IN
aaronw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2005, 12h04   #3
Membre à l'essai
 
Inscription : avril 2004
Messages : 48
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 48
Points : 20
Points : 20
heu ... j'ai l'impression que j'ai pas ete clair en fait

ce n'est pas la difference des 2 tables que je veu obtenir mais la soustraction de valeurs dans les champs.

Or avec NOT IN si je me trompe je vais plustot m'orienter vers la difference des 2 table au niveau des intitules.

Peut etre que je me trompe

ex:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
 
table1 :
intitule    | champ1 | champ2 | champ3
appels          900        800        500
 
table2 : 
intitule    | champ1 | champ2 | champ3
appels          50          100        150
 
resultat (table3) :
intitule    | champ1 | champ2 | champ3
appels          850        700        350
 
 
Voila, j'espere que la c comprehensible.
DaxTaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2005, 12h15   #4
Membre du Club
 
Inscription : décembre 2004
Messages : 82
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 82
Points : 42
Points : 42
c'est à dire que tu fais la soustraction de la premiere ligne de table 2 a la premiere ligne de la table 1?2eme ligne avec 2eme ligne?? etc??

les lignes n'ont pas un identifiant unique?
aaronw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2005, 12h16   #5
Inactif
 
Avatar de Médiat
 
Inscription : décembre 2003
Messages : 1 946
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 1 946
Points : 1 932
Points : 1 932
Code :
1
2
SELECT a.Champ1 - b.Champ1, ...
FROM table1 a INNER JOIN table2 b ON ...
Peut-être faut-il un LEFT OUTER, voire un FULL OUTER JOIN, dans ce cas il faut gérer les NULL (COALESCE)
Médiat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2005, 12h49   #6
Membre à l'essai
 
Inscription : avril 2004
Messages : 48
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 48
Points : 20
Points : 20
Si, les lignes ont un identifiant unique et je veut soustraire par identifiant.

j'essai vos solutions et je donne des nouvelles.

Merci.
DaxTaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2005, 16h03   #7
Membre à l'essai
 
Inscription : avril 2004
Messages : 48
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 48
Points : 20
Points : 20
Ca marche nickel Mediat,

J'avai pas pensé avec la jointure su l'intitule ca marche.

Merci encore.
DaxTaz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 22h20.


 
 
 
 
Partenaires

Hébergement Web