Я хочу создать представление, которое принимает параметры, а затем сделать выбор в этом представлении, как это
CREATE OR REPLACE FUNCTION statistiquess(dateDeb date, dateFin date)
RETURNS void AS
$$
CREATE OR REPLACE VIEW statistics
AS
SELECT
e.matricule_ens,
e.nom_ens,
e.prenom_ens,
m.code_matiere,
m.nom_matiere,
f.id_formation,
f.nom_formation,
SUM ((CAST (c.heure_fin AS TIME))-(CAST (c.heure_deb AS TIME))) AS heure_total_programme,
SUM ((CAST (c.heure_dep_ens AS TIME))-(CAST (c.heure_arr_ens AS TIME))) AS heure_total_enseigne
FROM
enseignant e inner join cours c on e.matricule_ens = c.matricule_ens
inner join matiere m on c.code_matiere = m.code_matiere
inner join formation f on f.id_formation = c.id_formation
WHERE
c.jour between dateDeb and dateFin
GROUP BY
e.matricule_ens, m.code_matiere, f.id_formation
ORDER BY
e.nom_ens;
$$
LANGUAGE SQL;
У меня появляется эта ошибка, когда я пытаюсь выбрать все из функций, подобных этой
select * from statistiquess('2019-03-06', '2019-03-29');
ERREUR: la colonne «datedeb» n'existe pas
LINE 6: ..._formation = c.id_formation where (c.jour between datedeb an...
QUERY:
CREATE OR REPLACE VIEW statistics AS select e.matricule_ens, e.nom_ens, e.prenom_ens, m.code_matiere, m.nom_matiere, f.id_formation, f.nom_formation,
SUM ((CAST (c.heure_fin AS TIME))-(CAST (c.heure_deb AS TIME))) AS heure_total_programme,
SUM ((CAST (c.heure_dep_ens AS TIME))-(CAST (c.heure_arr_ens AS TIME))) AS heure_total_enseigne
from enseignant e inner join cours c on e.matricule_ens = c.matricule_ens inner join matiere m on c.code_matiere = m.code_matiere
inner join formation f on f.id_formation = c.id_formation where (c.jour between datedeb and datefin)
GROUP BY e.matricule_ens, m.code_matiere, f.id_formation ORDER BY e.nom_ens;