procedure qui donne un montant
bonjour,
j'ai un petit probléme en ce qui concerne une procedure.
j'ai des taches qui ont des commandes et ses commandes ont des factures.
je voudrais calculer l'engagé = le montant des commandes - le montant des factures pour une tache.
description de mes tables:
tache: id_tache
commande: num_commande,nombre, taux, id_tache
factrue: num_fact, nombre, taux, num_commande
mes procédures:
1) DROP procedure IF EXISTS engage_d_une_commande |
create procedure engage_d_une_commande
(
id int
)
begin
select c.taux*c.nombre-sum(f.taux * f.nombre)
from facture f, commande c
where f.num_cde=c.num_commande
and num_cde=id
and validee=1
group by num_cde ;
end ;|
call engage_d_une_commande(1)|
cette procédure fonctionne et me renvoie l'engagé d'une commande (montant de la commande - montant des factures)
2) DROP procedure IF EXISTS engage_d_une_tache |
create procedure engage_d_une_tache
(
id int
)
begin
select c.taux*c.nombre-sum(f.taux * f.nombre)
from facture f, commande c, tache t
where f.num_cde=c.num_commande
and t.id_tache=c.id_tache
and c.id_tache=id
and validee=1
and cloturee=0
group by c.id_tache, c.num_commande;
end ;|
call engage_d_une_tache(1)|
me donne 2 montants (24 et 22) et quand je veux faire une somme de ce qui est dans le select (24+22) 46 cela me donne une erreur: invalid use of group fonction
autrement j'ai pensé utiliser un curseur qui permettrait de sélectionner toutes les commandes d'une tache et d'appeler ensuite la procédure engage_d_une_commande pour chaque commande de la tache, mais je ne sais pas comment appeler une procédure dans une fonction
j'espére que j'ai était claire dans mes explications
merci