Bonjour à tous,
J'ai créer un procédure stocké qui doit pour chaque ligne me retourné une moyenne et je souhaiterai classé les résultat par moyenne :
A l'éxécution de la procédure j'ai cette erreur :
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 ALTER PROCEDURE PS_MoyNoteParArtisan (@p_idAritsan int) AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; DECLARE @nbLigne int; DECLARE @sum int; DECLARE @moy int; SELECT @nbLigne = (SELECT Count(*) FROM noter WHERE idArtisan = @p_idAritsan); SELECT @sum = (SELECT SUM(noteGeneral)FROM noter WHERE idArtisan = @p_idAritsan); SET @moy = @sum / @nbLigne; SELECT *,@moy from artisan where id = @p_idAritsan order by @moy END GO
Comment donc déclarer une variable calculer dans un order by ? enfin si cela est possible.Msg*1008, Niveau*16, État*1, Procédure*PS_MoyNoteParArtisan, Ligne*22
L'élément SELECT identifié par le numéro ORDER BY 1 contient une variable faisant partie de l'expression identifiant une position de colonne. Les variables ne sont autorisées dans ORDER BY que si l'ordre est une expression référençant un nom de colonne.
Merci a vous.
Partager