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
Partager