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 23/01/2012, 18h35   #1
Membre du Club
 
bonero pross
Inscription : janvier 2010
Messages : 160
Détails du profil
Informations personnelles :
Nom : bonero pross

Informations forums :
Inscription : janvier 2010
Messages : 160
Points : 58
Points : 58
Par défaut Requete de Mise a jour avec une Jointure :

Bonjour et bonne annee a tout le monde,

J’ai deux tables ; table A et table B.
Table A:
RecordID EstimatedDay DayId
1 Thursday 4
2 Tuesday 2
3 xxx 777
4 Tuesday 2
5 Tuesday 2
6 zzz 888
7 vvv 999
8 sss 333


Table B:
DayID ActualDay
2 Mardi
3 Mercredi
4 Jeudi
5 Vendredi



Je veux que le contenu du champs A.EstimatedDay soit actualiser/remplacer PAR le contenu du champs B.ActualDay ; et ceci uniquement pour les enregistrements ou il y a une relation entre les deux tables. En gros, le resultat doit conserver les xxx, zzz,vvv et sss.


J’ai essaye le code suivant mais ca ne marche pas en ce sens que xxx, zzz, vvv et sss sont simplement effaces.

Code :
1
2
UPDATE A LEFT JOIN B ON A.DayId=B.DayID 
SET A.EstimatedDay = B.dayname;
voici le resulat que j'ai obtenu:
RecordID EstimatedDay DayId
1 Jeudi 4
2 Mardi 2
3 777
4 Mardi 2
5 Mardi 2
6 888
7 999
8 333

voici le resultat auquel je veux aboutir:

RecordID EstimatedDay DayId
1 Jeudi 4
2 Mardi 2
3 xxx 777
4 Mardi 2
5 Mardi 2
6 zzz 888
7 vvv 999
8 sss 333



Merci d’avance de me donner un coup de main.

Cordialement
ps. excuse moi pour le manque de mise en mise en forme des tables.
Bonero est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2012, 20h39   #2
Membre Expert
 
Avatar de nico84
 
Homme Nicolas Guimbal
Consultant/développeur ERP
Inscription : mai 2008
Messages : 1 268
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Guimbal
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant/développeur ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2008
Messages : 1 268
Points : 1 891
Points : 1 891
Bonjour,

Si c'est accepté, il suffit de faire
Code :
1
2
UPDATE A INNER JOIN B ON A.DayId=B.DayID 
SET A.EstimatedDay = B.dayname;
Ou ce qui revient au même :
Code :
1
2
3
4
5
6
UPDATE A LEFT JOIN B ON A.DayId=B.DayID 
SET A.EstimatedDay = B.dayname WHERE not isnull(B.dayname)
 
ou
UPDATE A LEFT JOIN B ON A.DayId=B.DayID 
SET A.EstimatedDay = nz(B.dayname, A.EstimatedDay)
nico84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2012, 12h31   #3
Membre du Club
 
bonero pross
Inscription : janvier 2010
Messages : 160
Détails du profil
Informations personnelles :
Nom : bonero pross

Informations forums :
Inscription : janvier 2010
Messages : 160
Points : 58
Points : 58
Bonjour Nico,
Merci pour ta reponse.
En meme temps, j’ai trouve cette soluce qui marche egalement.

UPDATE A LEFT JOIN B ON A.DayId = B.DayID
SET A.EstimatedDay = B.ActualDay
Where A.DayId = B.DayID

Merci de me dire laquelle de solutions est recommendee.
Bonero est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2012, 16h05   #4
Membre Expert
 
Avatar de nico84
 
Homme Nicolas Guimbal
Consultant/développeur ERP
Inscription : mai 2008
Messages : 1 268
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Guimbal
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant/développeur ERP
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : mai 2008
Messages : 1 268
Points : 1 891
Points : 1 891
Je ne serais pas surpris qu'à l'exécution il n'y ait aucune différence mais je préfère INNER JOIN car c'est le plus logique : cette instruction sert précisément à prendre uniquement les lignes communes aux 2 tables.
nico84 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 20h16.


 
 
 
 
Partenaires

Hébergement Web