Hi Alex, It seems you sent your answer to the wrong list :-)
Best regards JBF Le 15/03/2011 21:10, Alexander Thurgood a écrit : > Le 15/03/11 17:47, barbault a écrit : > > Bonsoir, > >> Mon projet est de faire des étiquettes (le moins possible) pour envoyer >> du courrier à tous les adhérents. >> >> Je suis presque débutant en SQL. >> Est-ce possible? > Je n'ai pas trouvé comment, même en essayant différentes jointures > internes et externes sur les tables. > >> Dois-je utiliser "R" ou "S"? > Pour moi, le problème vient du fait que les deux noms doivent appartenir > à un même "ad", ce qui est logique, mais si j'ai bien compris, tu n'es > pas allé jusqu'au bout de la normalisation de tes données. Normalement, > cela se fait en séparant bien les deux attributs chacun dans une table > dont l'id (dans ce cas, "ad") serait lié et donc commun aux deux (dans > deux tables distinctes). L'exemple de ta table R montre que tu n'a pas > respecté cette normalisation puisque tu y as mis aussi bien des > attributs "ne" que des attributs "nm". > > Cela conduit, même avec une jointure interne sur "R" à ressortir > plusieurs cas de figure qui ne correspondent pas, même si les bons y > sont aussi, sauf à faire des exclusions, mais alors on rentre dans un > schéma encore plus complexe avec des exceptions à n'en plus finir. > > A la limite, la seule table R suffirait si tu remplissais > systématiquement le champ "nm" chaque fois qu'il y avait un nom de mari, > sans en créer de nouvelle fiche à chaque fois. Mais tu découvrirais sans > doute d'autres limitations par la suite, probablement les mêmes qui > t'ont poussé à séparer la saisie des noms au départ. > > Peut-être que d'autres plus aguerris en SQL pourront trouver la > solution, mais j'ai retourné la question dans plusieurs sens, et à > chaque fois me retrouvais avec des réponses en trop ne correspondant > visiblement pas à ce que tu veux. > > Alors, soit une table R, comportant : > > id | ad | ne | nm | > ------------------- > 1 | a | d | e | > 2 | b | f | | > 3 | c | | g | > > et c'est celle-ci qui servirait directement pour la création d'étiquettes. > > Soit, une solution de 2 tables, disons S (membre) comme actuellement : > > id | ad | n | s | > ------------------- > 1 | a | d | f | > 2 | a | e | m | > 3 | b | f | f | > 4 | c | g | m | > > > et puis T (epoux) : > > id | ad | nm | s | > ------------------- > 1 | a | z | f | > 2 | a | y | m | > 3 | b | z | f | > 4 | c | a | m | > > > > Puis ta requête serait : > > SELECT S.ad as "Adresse", S.n as "Nom", T.nm as "Mari" from S,T where > S.ad = T.ad > > > > Alex > > > > > -- Seuls des formats ouverts peuvent assurer la pérennité de vos documents. -- Unsubscribe instructions: E-mail to users+h...@libreoffice.org List archive: http://listarchives.libreoffice.org/www/users/ *** All posts to this list are publicly archived for eternity ***