Base de Données Avec Postgresql
Résolu
Sarvock
Messages postés
20
Date d'inscription
Statut
Membre
Dernière intervention
-
estofilo Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
estofilo Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
Bonsoir,
Je veux faire une requête qui m'affiche le nombre d'heure que fait un enseignant par rapport à ma base de données,
Lorsque j'utilise cette commande :
" SELECT Sum((3/2)*Heure_Cours+1*Heure_TD+(2/3)*Heure_TP) as Heures_ETD, N_Enseignant
FROM Enseignant LEFT OUTER JOIN Correspond ON (Enseignant.N_Enseignant = Correspond.N_Enseignant)
GROUP BY N_Enseignant
ORDER BY N_Enseignant; "
Psql me répond : ERREUR: la référence à la colonne <<n_enseignant>> est ambigu
Je ne trouve pas mon erreur, et je ne comprends d'ailleurs pas, quelle est l'erreur,
Voilà les tables, si qqn peut m'aider :
CREATE TABLE Enseignant
(N_Enseignant INTEGER,
Nom_Enseignant varchar(20) CHECK (NOT NULL),
Prenom_Enseignant varchar(20),
Adresse_Enseignant varchar(50),
Telephone_Enseignant INTEGER,
Statut_Enseignant varchar(10) CHECK (Statut_Enseignant='Professeur' OR Statut_Enseignant='MaitreConf'),
Nb_Heure INTEGER CHECK (Nb_Heure='192' OR Nb_Heure='384'),
Attache_Enseignant varchar(50),
PRIMARY KEY (N_Enseignant),
FOREIGN KEY (Attache_Enseignant) REFERENCES Departement(Nom_Departement)
);
CREATE TABLE Correspond
(Heure_Cours INTEGER CHECK (NOT NULL),
Heure_TD INTEGER CHECK (NOT NULL),
Heure_TP INTEGER CHECK (NOT NULL),
N_Module INTEGER,
N_Enseignant INTEGER,
PRIMARY KEY (N_Module, N_Enseignant),
FOREIGN KEY (N_Module) REFERENCES Module(N_Module),
FOREIGN KEY (N_Enseignant) REFERENCES Enseignant(N_Enseignant)
);
Merci de bien vouloir m'aider.
Je veux faire une requête qui m'affiche le nombre d'heure que fait un enseignant par rapport à ma base de données,
Lorsque j'utilise cette commande :
" SELECT Sum((3/2)*Heure_Cours+1*Heure_TD+(2/3)*Heure_TP) as Heures_ETD, N_Enseignant
FROM Enseignant LEFT OUTER JOIN Correspond ON (Enseignant.N_Enseignant = Correspond.N_Enseignant)
GROUP BY N_Enseignant
ORDER BY N_Enseignant; "
Psql me répond : ERREUR: la référence à la colonne <<n_enseignant>> est ambigu
Je ne trouve pas mon erreur, et je ne comprends d'ailleurs pas, quelle est l'erreur,
Voilà les tables, si qqn peut m'aider :
CREATE TABLE Enseignant
(N_Enseignant INTEGER,
Nom_Enseignant varchar(20) CHECK (NOT NULL),
Prenom_Enseignant varchar(20),
Adresse_Enseignant varchar(50),
Telephone_Enseignant INTEGER,
Statut_Enseignant varchar(10) CHECK (Statut_Enseignant='Professeur' OR Statut_Enseignant='MaitreConf'),
Nb_Heure INTEGER CHECK (Nb_Heure='192' OR Nb_Heure='384'),
Attache_Enseignant varchar(50),
PRIMARY KEY (N_Enseignant),
FOREIGN KEY (Attache_Enseignant) REFERENCES Departement(Nom_Departement)
);
CREATE TABLE Correspond
(Heure_Cours INTEGER CHECK (NOT NULL),
Heure_TD INTEGER CHECK (NOT NULL),
Heure_TP INTEGER CHECK (NOT NULL),
N_Module INTEGER,
N_Enseignant INTEGER,
PRIMARY KEY (N_Module, N_Enseignant),
FOREIGN KEY (N_Module) REFERENCES Module(N_Module),
FOREIGN KEY (N_Enseignant) REFERENCES Enseignant(N_Enseignant)
);
Merci de bien vouloir m'aider.
A voir également:
- Base de Données Avec Postgresql
- Fuite données maif - Guide
- Base de registre - Guide
- Supprimer les données de navigation - Guide
- Tnt base de données vide - Forum TNT / Satellite / Réception
- Formules mathématiques de base - Télécharger - Études & Formations
2 réponses
En fait ce n'est pas la jointure c'est dans le SELECT que l'interpréteur SQL voit une ambiguité car on lui demande une colonne qui est dans 2 tables. Il se trouve que c'est la même valeur puisque justement il y a jointure sur cette colonne. Normalement il est possible de lever l'ambiguité en mettant au lieu de:
ON (Enseignant.N_Enseignant = Correspond.N_Enseignant)
la clause:
USING (N_Enseignant)
ON (Enseignant.N_Enseignant = Correspond.N_Enseignant)
la clause:
USING (N_Enseignant)