Bonjour

Avant toute chose : j'utilise ASE version 15.0.
Voilà ma requête :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
select table2.id_colonnes, id_types, id_vues, colonnes_nom, colonnes_champ_cible,
	colonnes_ordre, colonnes_config_type, colonnes_liste, colonnes_triable,
	colonnes_editable, colonnes_cherchable, colonnes_tag, types_nom
from (select * from (select sc.*, st.types_nom from shadow_colonnes sc inner join shadow_types st on sc.id_types=st.id_types) table1) table2, shadow_roles sr
left outer join shadow_droits_colonnes sdc on (table2.id_colonnes=sdc.id_colonnes and sr.id_roles=sdc.id_roles)
where table2.id_vues=87
and sr.id_roles in (72,73)
and sdc.droits_collonnes_modif <> 0;
Et voilà mon erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
Adaptive Server cannot perform the requested action because column 'id_colonnes' is not within the scope of the joined table expression. Check your command
for missing or incorrect database objects, variable names, and/or input data.
Cette erreur concerne cette ligne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
left outer join shadow_droits_colonnes sdc on (table2.id_colonnes=sdc.id_colonnes and sr.id_roles=sdc.id_roles)
Comment puis-je modifier ma requête pour que id_colonnes soit reconnue ?

Une autre question, cette requête est-elle portable ou bien est-ce une syntaxe propre à Sybase (il semblerait que Sybase ne reconnaisse pas les alias si ceux-ci sont "appelés" en dehors des parenthèses dans lesquels ils sont déclarés...)

Merci d'avance