bonjour,

j'aimerais créer une Fonction qui me permettrait de calculer les chiffre d'affaire par client en utilisant la notion de Curseur et on ayant comme structure des tables :


client (id_client,nom,prenom)
facture (id_facture,id_client,montant)

voici la fonction que j'ai créer mais qui génere des erreurs lors de l'éxécution :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
create function CA_Client (@num_client int) return money 
as
begin
declare @ca money ;
declare @id_client int;
declare my_cursor cursor for
select CLI_ID from dbo.T_CLIENT
open my_cursor fetch next from mu_cursor into @id_client
while @@fetch_status =0
  begin
   select @ca =@ca + montant from dbo.T_FACTURE where (dbo.T_CLIENT.CLI_ID = dbo.T_FACTURE.CLI_ID) and (dbo.T_FACTURE.CLI_ID=@id_client)
	fetch next from my_cursor into @id_client
	end 
	Close my_cursor
	deallocate my_cursor
	RETURN @ca
 
end
les erreurs générés sont les suivante :

Msg*156, Niveau*15, État*1, Procédure*CA_Client, Ligne*1
Syntaxe incorrecte vers le mot clé 'return'.
Msg*178, Niveau*15, État*1, Procédure*CA_Client, Ligne*16
Une instruction RETURN avec une valeur de retour ne peut être utilisée dans ce contexte.
j'ai compris qui y avait une erreur de syntaxe déja que j'ai pas réussi a trouvé et aussi la question que je me pose et : est ce que une fonction dans ce cas la est nécéssaire ?


merci de votre aide ,