1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| CREATE OR REPLACE FUNCTION StatQuartier (num IN NUMBER)
RETURN NUMBER IS tot NUMBER;
DECLARE
tmp number;
CURSOR cur (id_demande number, coutmat NUMBER, tauxhor NUMBER, nbh NUMBER)
IS SELECT distinct d.id, nvl(d.coutmat,0) , nvl(tauxhor,0) , sum(t.nbheure)
FROM demande d, realiser r , traiter t
WHERE d.id = t.id_demande (+)
and d.id = r.id_demande (+)
and d.id_quartier = num
and d.provenance in ('AlloNarbonne','Téléphone','Mail')
and lower(r.etat) in ('refusée','terminée')
GROUP BY d.id, nvl(d.coutmat,0), nvl(tauxhor,0);
BEGIN
tot := 0;
For cur IN ligne Loop
tot := tot + ligne.coutmat + ligne.tauxhor * ligne.nbh;
End loop ;
RETURN (tot);
END;
/ |
Partager