Bonjour,
j'ai exécuté une requête union avec Interbase.
J'utilise des abréviations pour définir le nom de mes tables.
Le problème est que j'ai une erreur parce que l'abréviation ADMFONC est utilisée dans les deux requêtes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 SELECT 'VRAI' AS CONTENU, ADMFONC.IDFONCTION, ADMFONC.NOMFONCTION, ADMSOUSFONC.IDSOUSFONCTION, ADMSOUSFONC.NOMSOUSFONCTION FROM ADM_FONCTIONS ADMFONC LEFT JOIN ADM_SOUSFONCTIONS ADMSOUSFONC ON (ADMFONC.IDFONCTION = ADMSOUSFONC.IDFONCTION) LEFT JOIN ADM_FORMULAIRESFONCTIONS ADMFORMFONC ON (ADMSOUSFONC.IDSOUSFONCTION = ADMFORMFONC.IDSOUSFONCTION) LEFT JOIN ADM_FORMULAIRES ADMFORM ON (ADMFORMFONC.IDFORMULAIRE = ADMFORM.IDFORMULAIRE) WHERE IDFORMULAIRE = 1 UNION SELECT 'FAUX' AS CONTENU, ADMFONC.IDFONCTION, ADMFONC.NOMFONCTION, ADMSOUSFONC.IDSOUSFONCTION, ADMSOUSFONC.NOMSOUSFONCTION FROM ADM_FONCTIONS ADMFONC LEFT JOIN ADM_SOUSFONCTIONS ADMSOUSFONC ON (ADMFONC.IDFONCTION = ADMSOUSFONC.IDFONCTION) WHERE IDSOUSFONCTION NOT IN ( SELECT ADMSOUSFONC.IDSOUSFONCTION FROM ADM_FONCTIONS ADMFONC LEFT JOIN ADM_SOUSFONCTIONS ADMSOUSFONC ON (ADMFONC.IDFONCTION = ADMSOUSFONC.IDFONCTION) LEFT JOIN ADM_FORMULAIRESFONCTIONS ADMFORMFONC ON (ADMSOUSFONC.IDSOUSFONCTION = ADMFORMFONC.IDSOUSFONCTION) LEFT JOIN ADM_FORMULAIRES ADMFORM ON (ADMFORMFONC.IDFORMULAIRE = ADMFORM.IDFORMULAIRE) WHERE IDFORMULAIRE = 1)
En mettant deux abbréviations différentes, ça passe...
J'ai le message d'erreur suivant :
Merci pour votre aide,Dynamic SQL Error
SQL error code = -204
alias ADMFONC conflicts with an alias in the same statement
Statement: SELECT 'VRAI' AS CONTENU, ADMFONC.IDFONCTION, ADMFONC.NOMFONCTION, ADMSOUSFONC.IDSOUSFONCTION, ADMSOUSFONC.NOMSOUSFONCTION
FROM ADM_FONCTIONS ADMFONC
LEFT JOIN ADM_SOUSFONCTIONS ADMSOUSFONC ON (ADMFONC.IDFONCTION = ADMSOUSFONC.IDFONCTION)
LEFT JOIN ADM_FORMULAIRESFONCTIONS ADMFORMFONC ON (ADMSOUSFONC.IDSOUSFONCTION = ADMFORMFONC.IDSOUSFONCTION)
LEFT JOIN ADM_FORMULAIRES ADMFORM ON (ADMFORMFONC.IDFORMULAIRE = ADMFORM.IDFORMULAIRE)
WHERE IDFORMULAIRE = 1
UNION
SELECT 'FAUX' AS CONTENU, ADMFONC.IDFONCTION, ADMFONC.NOMFONCTION, ADMSOUSFONC.IDSOUSFONCTION, ADMSOUSFONC.NOMSOUSFONCTION
FROM ADM_FONCTIONS ADMFONC
LEFT JOIN ADM_SOUSFONCTIONS ADMSOUSFONC ON (ADMFONC.IDFONCTION = ADMSOUSFONC.IDFONCTION)
WHERE IDSOUSFONCTION NOT IN (
SELECT ADMSOUSFONC.IDSOUSFONCTION
FROM ADM_FONCTIONS ADMFONC
LEFT JOIN ADM_SOUSFONCTIONS ADMSOUSFONC ON (ADMFONC.IDFONCTION = ADMSOUSFONC.IDFONCTION)
LEFT JOIN ADM_FORMULAIRESFONCTIONS ADMFORMFONC ON (ADMSOUSFONC.IDSOUSFONCTION = ADMFORMFONC.IDSOUSFONCTION)
LEFT JOIN ADM_FORMULAIRES ADMFORM ON (ADMFORMFONC.IDFORMULAIRE = ADMFORM.IDFORMULAIRE)
WHERE IDFORMULAIRE = 1)
Alexandre.
Partager