Bonjour Yves,
Le 15/03/11 21:43, yves dutrieux a écrit : > A mon avis on doit pouvoir se débrouiller avec la table S seule.. > Créer 2 vues/tables équivalentes à : > T1 = select ad, n as "ne" from S where S="f" Il faut mettre : select ad, n as "ne" from S where S.s='f' sinon le parseur de Base se plante parce qu'il transforme le champ 's' minuscule en 'S' majuscule, d'où confusion avec le nom de la table et génération d'erreur. > T2 = select ad, n as "nm" from S where S="m" idem ici, en remplaçant "m" par 'm' > ensuite un select comme suit : > select ad.T1, ne, nm from T1, T2 where ad.T1=ad.T2 > union > select ad.T1, ne, nm from T1, T2 where ad.T1 not in (select ad from T2) > union > select ad.T2, ne, nm from T1, T2 where ad.T2 not in (select ad from T1) > Cela donne le message d'erreur suivante : La commande n'est pas une instruction SELECT. Seules les requêtes sont autorisées. SELECT "ad"."T1", "ne", "nm" FROM "T1", "T2" WHERE "ad"."T1" = "ad"."T2" UNION SELECT "ad"."T1", "ne", "nm" FROM "T1", "T2" WHERE "ad"."T1" NOT IN ( SELECT "ad" FROM "T2" ) UNION SELECT "ad"."T2", "ne", "nm" FROM "T1", "T2" WHERE "ad"."T2" NOT IN ( SELECT "ad" FROM "T1" ) Si je désactive le parseur en passant directement par l'exécution de la requête SQL, j'ai droit à ça : Column not found: AD.T1 in statement [select ad.T1, ne, nm from T1, T2 where ad.T1=ad.T2 union select ad.T1, ne, nm from T1, T2 where ad.T1 not in (select ad from T2) union select ad.T2, ne, nm from T1, T2 where ad.T2 not in (select ad from T1)] C'est un bug déjà répertorié d'OOo de transformer les noms en majuscules - alors, morale de l'histoire : n'utiliser que des majuscules partout pour éviter ce genre de plaisanterie ? Si je corrige ta requête en mettant ceci à la place : select "T1"."ad", "ne", "nm" from T1, T2 where "T1"."ad"="T2"."ad" union select "T1"."ad", "ne", "nm" from T1, T2 where "T1"."ad" not in (select "ad" from T2) union select "T2"."ad", "ne", "nm" from T1, T2 where "T2"."ad" not in (select "ad" from T1) Il faut en effet, mettre le nom de la Vue avant la colonne, sinon la requête ne fonctionne pas. J'obtiens : ad ne nm a d e b f e b f g c d g c f g Qui dit mieux ? :-ppp Alex -- Envoyez un mail à users+h...@fr.libreoffice.org pour savoir comment vous désinscrire Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/ Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être supprimés