|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() ingénieur essais électronique Inscription : mai 2011 Messages : 128 ![]() |
Bonjour,
J'ai une base avec deux tables via odbc. Ces deux tables ont chacune un champ référence et un champ désignation. Cependant, le champ référence possède des doublons entre les deux tables et à l'intérieur d'une des deux tables, il y a aussi des doublons (issue des reférénces). Je voudrait réaliser une requete pour récupérer un tableau sans aucun doublon avec la référence unique et la désignation jointe (de l'une ou de l'autre table dans le cas des doublons). Ceci me permettra de réutilisée cette requete dans une liste modifiable. Merci |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour Sylv20,
Si j'ai bien compris, une des deux tables est sans doublon (1 ligne par référence) et l'autre contient des doublons (plusieurs lignes pour une même référence). C'est bien cela ?
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() ingénieur essais électronique Inscription : mai 2011 Messages : 128 ![]() |
Donc oui c'est à peut pret ca.
On va les appeler table 1 et table 2 table 1 (sans doublon du champs référence). champs : reference (clé primaire indéxé sans doublon) designation (non indéxé) table 2 (avec doublon sur le champs reférence) champs : ID (clé primaire indéxé sans doublon) reférence (non indéxé avec doublon) car il y a plusieurs issue pour uen reference designation (non indéxé) issues (non indéxé) Pour le moment, j'utilise la fonction UNION qui enlève tous les doublons de ma colonne reférence entre les deux tables. Mais je n'arrive pas a récupérer la colonne désignation de l'une ou de l'autre table. Donc j'aimerais dans une requete récupérer : le champs ref unique pour chaque reference (indéxé sans doublon) le champs désignation (non indéxé) de l'une ou de l'autre table |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Toutes les références de Table1 sont-elles, forcément, dans Table2 ?
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() ingénieur essais électronique Inscription : mai 2011 Messages : 128 ![]() |
Non.
Certaines ref de table 1 ne sont dans table 2 et vice versa. |
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
OK.
Si une même référence est dans Table1 et dans Table2, la désignation est-elle, forcément, la même ?
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() ingénieur essais électronique Inscription : mai 2011 Messages : 128 ![]() |
Et bien non. En fait les deux tables sont renseignées par des services différents, la référence peut être identique avec des désignations différentes (ex : manocontact dans une table et manocontact 5bars dans une autre, l'idée reste la même).
Je n'ai pas de contrainte à prendre telle ou telle désignation. Ps : dans une même table (table 2), il y a plusieurs fois la même référence (issue différente) et les désignations sont différentes aussi (cependant, c'est la même idée que precedemment au sujet des manocontacts). L'idée principale c'est la référence, je veux qua la liste déroulante laisse apparaitre la ref et la désignation (sur saisie de reference) mais le champs sera remplie uniquement par reference. La désignation sera juste un indice pour l'utilisateur (qu'il ne se trompe pas) lors de la sasie de la referenece. J'espere que je suis clair. |
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour Sylv20,
Intéressant... Suggestion : - créer une requête R1 union de Table1 et Table2 ==> tous les enregistrements ; - créer une requête R2 qui analyse R1, groupée par "reference", avec Premier de "designation" ==> 1 ligne par référence avec la première désignation trouvée.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
10
|
|
|
#9 |
|
Nouveau Membre du Club
![]() ingénieur essais électronique Inscription : mai 2011 Messages : 128 ![]() |
Ahhhhh, merci beaucoup.
C'était simple en fait mais je ne connaissais pas cette histoire de regroupement. Donc au final, j'ai une requete sur chaque table qui recupere la ref et la designation ensuite une union entre les deux et pour finir une derniere requete qui regroupe les refs ensemble et prend la dernière designation (plutôt que la première comme dans ta réponse). Ma dernière requete (reference en regroupement et désignation la dernière) prend donc a chaque référence la dernière désignation disponible (en l'occurrence celle de la table 2 car j'ai fait table 1 union table 2) ? Le regroupement supprime les doublons c'est ca ??? Question subsidière : Si tu n'a pas de réponse c'est pas grave, le principal est fait. Dans les tables 1 et 2 : une référence dans la table 1 possède une désignation. la même référence dans la table 2 ne possède pas de désignation. (et bien sure vice versa) Dans ma requête finale, il me prend la désignation de la table 2 (celle ou il n'y a pas de désignation). Du coup la désignation est vide alors qu'elle existe dans la table 1. Je voudrais si possible la désignation lorsqu'elle est présente dans l'une ou l'autre tables sinon ca reste vide si ni dans l'une ni dans l'autre la désignation n'est présente. |
|
|
00
|
|
|
#10 | |||
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Citation:
Citation:
Citation:
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|||
|
|
00
|
|
|
#11 | ||||||||
|
Nouveau Membre du Club
![]() ingénieur essais électronique Inscription : mai 2011 Messages : 128 ![]() |
Bon j'ai essayé plein de formule et d'ordre différent mais ca ne marche pas.
Voila en détail : requete sur la table 1 (ess1_3) : Code :
requete sur la table 2 (ess2_3): Code :
Ensuite, je fais une union qui trie par désignation en ordre croissant (req1_3): Code :
Ensuite je fais un regroupement sur la référence et prendre la dernière désignation (car ordre croissant dans ma requete union) (req1_3_fin): Code :
PS : des fois la table 1 a la désignation et la table 2 n'a pas la désignation mais des fois c'est l'inverse, c'est la table 1 qui n'a pas la désignation et c'est la table 2 qui a la désignation. Je voudrais qu'il me sorte toujours celle qui a la désignation. Ou s'il n'y a pas de désignation dans ausune des deux tables et bien le champs restera vide. |
||||||||
|
|
00
|
|
|
#12 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Supprimes "ALL" de "UNION ALL".
Et utilises les balises "codes" ==> #, en haut.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#13 |
|
Nouveau Membre du Club
![]() ingénieur essais électronique Inscription : mai 2011 Messages : 128 ![]() |
Merci pour tout. Ca fonctionne parfaitement. Une fois dans la liste modifiable ca fait bien pro.
Finalement à un mot près le résultat est complètement différent. Encore merci.
|
|
|
00
|
|
|
#14 | |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Citation:
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com