Salut à tous,

J'ai fait une store procedure et tout fonctionne à la création mais quand je veux tester ma procédure elle me donne une erreur voici l'erreur:

Msg*512, Niveau*16, État*1, Procédure*spGetNomClientAndNombreClientFromDescPlan, Ligne*6
La sous-requête a retourné plusieurs valeurs. Cela n'est pas autorisé quand la sous-requête suit =, !=, <, <= , >, >= ou quand elle est utilisée en tant qu'expression.


voici mon code:
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
28
29
/*10) Ecrire une sp qui retourne dans un Recordset les clients qui détiennent des polices d'un plan.  
Le nom du plan est reçu en paramètre par la SP.  De plus la SP retourne dans un paramètre output la quantité de clients 
qui ont des polices de ce plan.  Exécuter la SP et afficher le nombre retourné dans le paramètre output.*/
 
--création de la procédure
create procedure dbo.spGetNomClientAndNombreClientFromDescPlan
@NomPlan varchar(30),
@NomClient varchar(50) output,
@NombreClient int output
as
set @NomClient=(
	select c.Nom+' '+c.Prenom as NomDesClientPourCePlan  from Clients as c 
	inner join PolicesVendues as p on c.PkClient=p.FkClient
	inner join PlansOfferts as po on p.FkPlan=po.PkPlan
	where po.DescPlan=@NomPlan
)
set @NombreClient=(
	select COUNT(pv.FkClient) as NombreClientQuiOntCePlan from PolicesVendues as pv
	inner join PlansOfferts as po on pv.FkPlan=po.PkPlan
	where DescPlan=@NomPlan
)
go
--test procedure
declare @NomClient varchar(50) 
declare @NombreClient int 
exec dbo.spGetNomClientAndNombreClientFromDescPlan 'Vie',@NomClient output,@NombreClient output
print 'Voici les nom des client qui ont ce plan: '+@NomClient
print 'Voici le nombre de client qui ont ce plan: '+cast(@NombreClient as varchar(5))
go