Bonjour à tous.
Voila le souci :
J'ai deux bases de données et j'utilise DbLink pour faire mes requêtes sur ces deux bases.
Mon problème vient de la clause WHERE.
Si je fait ça :
J'obtiens bien les infos.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT personnel.*, suivi_militaire.* FROM suivi_militaire INNER JOIN dblink('dbname=ListePersonnel user=postgres password=AdminPsql1','SELECT matricule, nom, prenom, grade, fonction FROM personnel') AS personnel(matricule varchar(50), nom varchar(50), prenom varchar(50), grade varchar(20), fonction varchar(20)) ON suivi_militaire.matricule = personnel.matricule ORDER BY personnel.nom;
Mais dès que je veux utiliser un WHERE, j'ai une erreur:
ERREUR: erreur de syntaxe sur ou près de "WHERE"
LINE 5: WHERE personnel.fonction = 'CCS'
La requête avec le WHERE en question :
J'ai essayé comme ça aussi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT personnel.*, suivi_militaire.* FROM suivi_militaire INNER JOIN dblink('dbname=ListePersonnel user=postgres password=AdminPsql1','SELECT matricule, nom, prenom, grade, fonction FROM personnel') AS personnel(matricule varchar(50), nom varchar(50), prenom varchar(50), grade varchar(20), fonction varchar(20)) WHERE personnel.fonction = 'CCS' ON suivi_militaire.matricule = personnel.matricule ORDER BY personnel.nom;
Et j'ai la même erreur, mais sur la ligne 3.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT personnel.*, suivi_militaire.* FROM suivi_militaire INNER JOIN dblink('dbname=ListePersonnel user=postgres password=AdminPsql1','SELECT matricule, nom, prenom, grade, fonction FROM personnel WHERE personnel.fonction = "CCS"') AS personnel(matricule varchar(50), nom varchar(50), prenom varchar(50), grade varchar(20), fonction varchar(20)) ON suivi_militaire.matricule = personnel.matricule ORDER BY personnel.nom;
Je précise que le critère de choix du WHERE, CCS n'est pas une variable, mais une chaine de caractères.
Quelqu'un a une idée ?
Partager