Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
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 17/11/2011, 16h11   #1
Membre éclairé
 
Homme Michel
Développeur informatique
Inscription : février 2008
Messages : 263
Détails du profil
Informations personnelles :
Nom : Homme Michel
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Finance

Informations forums :
Inscription : février 2008
Messages : 263
Points : 309
Points : 309
Par défaut Problème d'union de 2 tables

Bonjour, Je me permets de revenir sur une question pour laquelle on m'a donné des solutions (qui soit ne fonctionnent finalement pas, soit je ne les ai pas comprises)

J'ai deux tables :

Table1
Type----Nb
01-------1
02-------2
02-------3

Table2
Type----Nb2
01-------5
03-------3
01-------1

Je voudrais obtenir grace à ces 2 tables :

Type---Nb------Nb2
01-------1--------6
02-------5--------0
03-------0--------3

j'ai essaye de mettre en pratique ce qui m'a été indiqué, à savoir :

Requête1
Code :
1
2
SELECT table1.Type, table1.Nb, Table2.Nb2
FROM table1 LEFT JOIN Table2 ON table2.Type = Table1.type
Puis
Requête2
Code :
1
2
SELECT Table2.Type, Table1.Nb, Table2.Nb2
FROM Table2 LEFT JOIN Table1 ON Table2.Type = Table1.Type
Et enfin :
Code :
1
2
3
(SELECT Type , Nb, NB2 from Requête1)
union
(SELECT Type , Nb, NB2 from Requête2)

Mais cette dernière requête me donne :

Type---Nb------NB2
01-------1--------1
01-------1--------5
02-------2--------0
02-------3--------0
03-------0--------3

et non (contrairement à ce que j'espérais)

Type---Nb------Nb2
01-------1--------6
02-------5--------0
03-------0--------3

Et si je fais un Group by Type dans les requêtes1 et 2 (avant l'union)
j'obtiens :

Type---Nb--------NB2
01------2---------6
02------5---------0
03------0---------3

Ce qui ne paraît pas non plus convenir puisque le type '01' donne Nb=2 au lieu de Nb=1

Bref je dois mal interprêter quelque chose dans ce qui m'a été expliqué...
Quelqu'un pourrait-il m'aider ?
Merci
Michel
Orion34080 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 19h40   #2
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 415
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 415
Points : 4 447
Points : 4 447
bonsoir,

ce n'est pas le même problème qu'ici non plus...

Ici, tu peux commencer par cette requête UNION:

Code sql :
1
2
3
( SELECT type, Sum(Nb) AS LaSomme , "Nb" AS TypeNb  FROM Table1 GROUP BY Type)
UNION ALL
( SELECT type, Sum(Nb2), "Nb2" FROM Table2 GROUP BY Type);

Après, on peut essayer avec une requête "Analyse croisée", par exemple:
Code sql :
1
2
3
4
5
TRANSFORM nz(First(LaSomme),0) AS Valeur
SELECT type
FROM LaRequeteAvecUnion
GROUP BY type
PIVOT TypeNb;

à construire avec les assistants.
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2011, 09h26   #3
Membre éclairé
 
Homme Michel
Développeur informatique
Inscription : février 2008
Messages : 263
Détails du profil
Informations personnelles :
Nom : Homme Michel
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Finance

Informations forums :
Inscription : février 2008
Messages : 263
Points : 309
Points : 309
Merci F-Leb... Ca fonctionne ok mainteant

Et par ailleurs tu as raison : ce n'est pas le même problème que celui que j'avais posé précédemment dans la mesure où je ne regroupais pas...

En tout cas, grace à toi, problème résolu
Michel
Orion34080 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 +2. Il est actuellement 13h44.


 
 
 
 
Partenaires

Hébergement Web