Alex Thurgood <alex.thurgood <at> free.fr> writes:

 

> 

> Le jeudi 03 novembre 2005 à 08:11 +0100, Jacques Petiot a écrit :

> 

> Bonjour,

> 

> > dans la version 2, je viens de tester l'éditeur de requête et j'ai le 
> > problème suivant:

> > 

> > pour une requête de non correspondance, la jointure droite (voire gauche ) 
> > ne permet pas d'obtenir le

> résultat escompté, (les parents sans enfants) en recopiant du SQL j'arrive à 
> obtenir le bon résultat

> mais on ne peut plus revenir dans l'éditeur graphique sous peine de véroler 
> le SQL.

> > 

> > j'ai donc besoin d'un peu d'aide 

> > 

> > de même que pour faire des requêtes paramétrées dont le paramètre est le 
> > contenu d'un formulaire

> 

> Je pense que ça nous aiderait de connaître la structure de tes tables et

> les requêtes que tu souhaites lancer.

> 

> Alex

> 

La structure est simple:

une table Adhérents                          une table Elèves

clef sur le champ Adhérent (integer)     clef sur le champ Elève (integer)

champs Nom                                       Nom

       Prénom                                    Prénom

       Adresse etc...                            Adhérent (integer) le lien

 

une requète dont je ne peut copier le graphique!!! mais qui  ressemble à ça

Champ:   Nom        Prénom      Adresse      Elève

Table:   Adhérents  Adhérents   Adhérents    Elèves

Critère:                                     est vide

 

avec une jointure droite (tous les enregistrements de Adhérents et uniquement 
....

Qui donne un message d'erreur: "column not found.... avec la liste des colonnes

 

avec une jointure gauche ne donne rien! c'est normal je n'ai pas rentré d'élève 
sans parent adhérent

 

Le SQL de la jointure droite est celui ci

SELECT "Adhérents"."Nom", "Adhérents"."Prénom", "Adhérents"."Téléphone_fixe", 
"Elèves"."Elève" FROM { OJ "Elèves" "Elèves" RIGHT OUTER JOIN "Adhérents" 
"Adhérents" ON "Elèves"."Adhérent" = "Adhérents"."Adhérent" } WHERE ( ( 
"Elèves"."Elève" IS NULL ) )

 

je comprend à la lecture (difficile pour moi) qu'on ne risque pas de trouver  
"Adhérents"."Nom" dans "Elèves"

et donc je retourne l'expression SQL en: 

SELECT "Adhérents"."Nom", "Adhérents"."Prénom", "Adhérents"."Téléphone_fixe", 
"Elèves"."Elève" FROM { OJ  "Adhérents" "Adhérents" lefT OUTER JOIN "Elèves" 
"Elèves"  ON "Elèves"."Adhérent" = "Adhérents"."Adhérent" } WHERE ( ( 
"Elèves"."Elève" IS NULL ) )

 

et là miracle ça marche!

je me dis donc que je suis très fort et j'enregistre ma requête

Elle fonctionne si je l'exécute à partir de la fenêtre principale

Manque de bol, je ne peut plus la modifier sans passer par le mode ébauche qui 
re-modifie le SQL ET QUI NE MARCHE PLUS

De plus je pense que le mode ébauche ne traduit pas correctement le SQL

Répondre à