Salut a tous je suis entrain de faire une store procedure et elle me donne toujours une erreur j'ai tester ma requette elle fonctionne tres bien elle me donne le résultat voulu mais quand j'essaie de créer ma procédure elle me donne cette erreur:
Msg*116, Niveau*16, État*1, Procédure*spGetPrixPrimeFromPk, Ligne*15
Une seule expression peut être spécifiée dans la liste de sélection quand la sous-requête n'est pas introduite par EXISTS.

Voici mon code pour la création de ma procédure:
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
19
20
21
22
23
24
25
26
27
/*6) Faire une SP qui retourne dans un Recordset (par SELECT) le prix d'une prime d'assurance pour un client dont le Pk 
est passé en paramètre.  Le calcul se fait comme suit:  
Prix de base 10$.  
Pour les hommes ajoutez 3.50$, pour les femmes enlevez 2.50$. 
Pour les plus de 30 ans, ajoutez $3, pour les plus de 50 ans, ajoutez 10%.*/
 
--création de la procédure
create procedure dbo.spGetPrixPrimeFromPk
@PkClient int,
@Prix decimal(6,1) output
as
set @Prix= (select sexe,DateNaissance,
case
	when Sexe ='M' and DATEDIFF(year,DateNaissance,GETDATE())<30 then 10+3.5
	when Sexe='M' and DATEDIFF(year,DateNaissance,GETDATE())>30 and DATEDIFF(year,DateNaissance,GETDATE())<50 then 10+3.5+3
	when Sexe='M' and DATEDIFF(year,DateNaissance,GETDATE())>50 then ((10+3.5)*0.1)+(10+3.5)
	when Sexe ='F' and DATEDIFF(year,DateNaissance,GETDATE())<30 then 10-2.5
	when Sexe='F' and DATEDIFF(year,DateNaissance,GETDATE())>30 and DATEDIFF(year,DateNaissance,GETDATE())<50 then 10-2.5+3
	when Sexe='F' and DATEDIFF(year,DateNaissance,GETDATE())>50 then ((10-2.5)*0.1)+(10-2.5)
	end as PrixPrime 
	from Clients 
	where PkClient=@PkClient)
go
--test procédure
declare @PrixPrime decimal(6,2)
exec dbo.spGetPrixPrimeFromPk 1,@PrixPrime output
print 'Le prix de la prime est: '+@PrixPrime