[Access] Deux tables en une mais...

Deux tables en une mais... [Access] - SQL/NoSQL - Programmation

Marsh Posté le 03-10-2002 à 08:14:40    

Salut,
 
Voila, j'ai deux tables "Société" et "Contacts" avec une relation de 1 à plusieurs.  
 
Société                    Contacts
-------                    --------
N° auto                    N° Auto
Ref clienf ========> Ref client
Raison sociale            Nom  
Ville                         Tel
....
 
J'aimerai avoir le résultat suivant dans une seule table....
 
 
[société].Raison sociale | [société].ville | [contact]nom1 |[contact]tel1 |[contact]nom2 |[contact]tel2 | ....
 
J'ai essayé plein de trucs, mais j'ai fait choux blanc, alors si quelqu'un a une idée elle sera la bienvenue. (J'espère avoir été clair ds mes explications).
 
Merci D'avance

Reply

Marsh Posté le 03-10-2002 à 08:14:40   

Reply

Marsh Posté le 03-10-2002 à 08:18:16    

Contenu de la table Société :
 
Ref client Nom client Ville
100A       Toto       Paris
100B       Titi         Lille
 
Contenu de la table Contacts :
 
N° auto ref_client Nom ...
1         100A       Papa
2         100A       Maman
3         100A       Lechien
4         100B       Labonne
5         100B       EtMoi
 
Resultat souhaité :
 
Ref_client | société.[nom] | société.[ville] | contact[nom1] | contact[nom2] | contact[nom3]
100A         Toto               Paris                  Papa                  Maman           LeChien  
100B         Titi                 Lille                    LaBonne             EtMoi
 
 
Voila, rien ne vaut un bon exemple pr se faire comprendre je crois. Merci déjà a ceux qui se sont penchés sur mon pb.

Reply

Marsh Posté le 03-10-2002 à 09:03:17    

Si tu utilise Access tu peux utiliser le Wizard pour créer une requete. Rien de plus simple...
Tu sélectionnes tes 2 tables, tu fais glisser les champs qui t'intéressent dans le tableau du Wizard et bam c'est bon.
 
J'ai bon ?
-------------------------EDIT----------------------------------
A merde pardon, j'avais pas vu tout le pb :)!
---------------------------------------------------------------


Message édité par format_c le 03-10-2002 à 09:06:54

---------------
Mes guitares, ampli, et effets sont en vente !
Reply

Marsh Posté le 03-10-2002 à 10:54:28    

T'as un nombre maxi de contact ?
Si Oui alors tu peux t'en sortir en passant un certain
nombre de requêtes...  :pt1cable:  
Si Non, je vois pas un truc simple  :(

Reply

Marsh Posté le 03-10-2002 à 11:27:44    

Format_c, non tu n'as pas bon, c + complexe que cela, merci toutefois d'avoir répondu.
 
vttman, j'ai pensé à cette solution, en supprimant la valeur max ou min à chaque fois et en passant par une procédure enchainant les requêtes, le pb est que le champ de liaison (ref_client) n'est pas numérique... SIC... je ne sais plus trop quoi faire.

Reply

Marsh Posté le 03-10-2002 à 12:51:21    

OlivierL59 a écrit a écrit :

Format_c, non tu n'as pas bon, c + complexe que cela, merci toutefois d'avoir répondu.
 
vttman, j'ai pensé à cette solution, en supprimant la valeur max ou min à chaque fois et en passant par une procédure enchainant les requêtes, le pb est que le champ de liaison (ref_client) n'est pas numérique... SIC... je ne sais plus trop quoi faire.




 
Mon idée c'était du style
1) Tu insères dans une table TEMP
tes enr. du style
NEWNUM    REF_CLIENT NOM
--------------------------
1         100A       Papa  
2         100A       Maman  
3         100A       Lechien  
 
1         100B       Labonne  
2         100B       EtMoi  
 
Note pour transformer  
NEWNUM    REF_CLIENT NOM
--------------------------
4         100B       Labonne  
5         100B       EtMoi  
en
NEWNUM    REF_CLIENT NOM
--------------------------
1         100B       Labonne  
2         100B       EtMoi  
il faut faire un update champ = champ mod 11  
si 11 contacts max par exemple
 
2) Tu insères tes enregistrements dans ta table FINALE
mais sans te préoccuper des contacts dans un 1 er temps
Ce qui nous donne ...
Ref_client | société.[nom] | société.[ville] | contact[nom1] | contact[nom2] | contact[nom3]  
100A         Toto               Paris                  100B         Titi                 Lille                    
 
3)Jointure entre la table FINALE et TEMP
et passage de 11 requêtes  
style
update FINALE,TEMP set contact[nom1] = TEMP.NOM
where TEMP.NEWNUM = 1 and FINALE.REF_CLIENT =TEMP.REF_CLIENT
update FINALE,TEMP set contact[nom2] = TEMP.NOM
where TEMP.NEWNUM = 2 and FINALE.REF_CLIENT =TEMP.RE_CLIENT
...
 
 :eek2:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed