Sans avoir testé, donc sans garantie aucune mais ca devrait marcher :
CREATE OR REPLACE FUNCTION rea_prev(integer, date) RETURNS refcursor AS '
DECLARE
mycurs refcursor;
BEGIN
OPEN mycurs FOR
select
prv_agt.num_agt,
dat_deb,
max(dat_ptj) as fin,
temps(sum(temps(temps))::int4) as fait,
temps((tps_est/(ndj_trv/2.)*(max(dat_ptj)-dat_deb+1))::int4) as prevu,
temps(sum(temps(temps))::int4 - (tps_est/(ndj_trv/2.)*(max(dat_ptj)-dat_deb+1))::int4) as diff
from
totaljournee,
prv_agt
where
totaljournee.num_agt = 1ドル
and totaljournee.num_agt = prv_agt.num_agt
and (dat_ptj between dat_deb and dat_fin and getFinPeriode(dat_ptj) - 1 = dat_fin)
and dat_ptj <= 2ドル
group by prv_agt.num_agt, dat_deb, tps_est, ndj_trv
order by 1;
RETURN mycurs;
END;' language plpgsql
[^] # Re: Proc stock ?
Posté par Jerome Herman . En réponse au message Rendre une requête paramétrable persistante.. Évalué à 1.
CREATE OR REPLACE FUNCTION rea_prev(integer, date) RETURNS refcursor AS '
DECLARE
mycurs refcursor;
BEGIN
OPEN mycurs FOR
select
prv_agt.num_agt,
dat_deb,
max(dat_ptj) as fin,
temps(sum(temps(temps))::int4) as fait,
temps((tps_est/(ndj_trv/2.)*(max(dat_ptj)-dat_deb+1))::int4) as prevu,
temps(sum(temps(temps))::int4 - (tps_est/(ndj_trv/2.)*(max(dat_ptj)-dat_deb+1))::int4) as diff
from
totaljournee,
prv_agt
where
totaljournee.num_agt = 1ドル
and totaljournee.num_agt = prv_agt.num_agt
and (dat_ptj between dat_deb and dat_fin and getFinPeriode(dat_ptj) - 1 = dat_fin)
and dat_ptj <= 2ドル
group by prv_agt.num_agt, dat_deb, tps_est, ndj_trv
order by 1;
RETURN mycurs;
END;' language plpgsql