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

Reply via email to