OVH Cloud OVH Cloud

procédure stockée

2 réponses
Avatar
Hammou
Bonjour,
j'aimerais créer une procédure stockée avec deux paramètres qui sont
deux colonnes de la table :

CREATE PROCEDURE croix
@var1 varchar(10),
@var2 varchar(10)
AS
SELECT @var1,@var2,sum(total) as nb
from matable
group by @var1,@var2
GO

j'ai l'erreur suivante :

Les expressions GROUP BY doivent faire référence à des noms de colonnes
figurant dans la liste de sélection

pourtant la requete sql marche si l'on remplace les paramètres par des
noms de colonnes :

SELECT mavar1,mavar2,sum(total) as nb
from matable
group by mavar1,mavar2


Je n'arrive pas à voir où est l'erreur!!!!!

Merci

2 réponses

Avatar
Sylvain Lafontaine
Une variable ne peut pas être un parametre ou une variable locale et être
aussi un nom de colonne en même temps.

Vous devriez expliciter davantage ce que vous cherchez à faire avec ces deux
paramètres.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: http://cerbermail.com/?QugbLEWINF


"Hammou" wrote in message
news:44edd7ab$0$19780$
Bonjour,
j'aimerais créer une procédure stockée avec deux paramètres qui sont deux
colonnes de la table :

CREATE PROCEDURE croix
@var1 varchar(10),
@var2 varchar(10)
AS
SELECT @var1,@var2,sum(total) as nb
from matable
group by @var1,@var2
GO

j'ai l'erreur suivante :

Les expressions GROUP BY doivent faire référence à des noms de colonnes
figurant dans la liste de sélection

pourtant la requete sql marche si l'on remplace les paramètres par des
noms de colonnes :

SELECT mavar1,mavar2,sum(total) as nb
from matable
group by mavar1,mavar2


Je n'arrive pas à voir où est l'erreur!!!!!

Merci


Avatar
Romelard Fabrice [MVP]
Bonjour,

Vous devez passer par une variable intermédiaire qui contiendra la requete :

DECLARE @SQL AS VARCHAR(1000)

SET @SQL = 'SELECT '+ @var1 +', '+ @var2 +' ,sum(total) as nb from matable
group by '+ @var1 +' , '+ @var2

EXECUTE @SQL


--
Cordialement.

Romelard Fabrice [MVP]


"Hammou" a écrit dans le message de news:
44edd7ab$0$19780$
Bonjour,
j'aimerais créer une procédure stockée avec deux paramètres qui sont deux
colonnes de la table :

CREATE PROCEDURE croix
@var1 varchar(10),
@var2 varchar(10)
AS
SELECT @var1,@var2,sum(total) as nb
from matable
group by @var1,@var2
GO

j'ai l'erreur suivante :

Les expressions GROUP BY doivent faire référence à des noms de colonnes
figurant dans la liste de sélection

pourtant la requete sql marche si l'on remplace les paramètres par des
noms de colonnes :

SELECT mavar1,mavar2,sum(total) as nb
from matable
group by mavar1,mavar2


Je n'arrive pas à voir où est l'erreur!!!!!

Merci