Problème sur procédure stockée
Bonjour à tous,
je rencontre un petit soucis sur une procèdure stockée avec SQL server.
J'ai des erreurs de syntaxe qui pop et je sais pas pourquoi :?
Je débute avec les procédures stockées donc il y a quelques concepts que je ne maîtrise pas forcément :?
voila mon code :
Code:
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 30 31 32 33 34 35 36
| create procedure Statistiques as
declare @sexe as varchar(50), @etat as varchar(50)
declare @Total as int
@Total = select SUM(cast(cast(POND as varchar(50))as int)) from insee
create sexe_cursor CURSOR FOR Select DISTINCT SEXE from insee
open sexe_cursor
FETCH NEXT FROM sexe_cursor INTO @sexe
WHILE (@@FETCH_STATUS = 0)
BEGIN
create etat_cursor CURSOR FOR Select DISTINCT ETAT_MAT from insee
open etat_cursor
FETCH NEXT FROM etat_cursor INTO @etat
while (@@FETCH_STATUS = 0)
BEGIN
-- On récupére le total de personnes de chaque Etat et chaque sexe => CASE
declare @TotalCase AS int
@TotalCase = select SUM(cast(cast(POND as varchar(50))as int)) from insee WHERE SEXE = @sexe and ETAT_MAT = @etat
-- On récupére le total de personnes de chaque Sexe => Ligne
declare @totalSexe AS int
@totalSexe = Select SUM(cast(cast(POND as varchar(50))as int)) from insee WHERE SEXE = @sexe
-- On récupére le total de personnes de chaque Etat => Colonne
declare @totalEtat AS int
@totalEtat =Select SUM(cast(cast(POND as varchar(50))as int)) from insee WHERE ETAT_MAT = @etat
declare @freq as float
@freq = (@TotalCase/@Total)*100
declare @pctligne as float
@pctligne = (@TotalCase/@totalSexe)*100
declare @pctCol as float
@pctCol = (@TotalCase/@totalEtat)*100
select @TotalCase, @freq, @pctligne, @pctCol
END
END |
et les erreurs qui pop :
Msg*102, Niveau*15, État*1, Procédure*Statistiques, Ligne*4
Syntaxe incorrecte vers '@Total'.
Msg*102, Niveau*15, État*1, Procédure*Statistiques, Ligne*5
Syntaxe incorrecte vers 'sexe_cursor'.
Msg*102, Niveau*15, État*1, Procédure*Statistiques, Ligne*10
Syntaxe incorrecte vers 'etat_cursor'.
Msg*102, Niveau*15, État*1, Procédure*Statistiques, Ligne*17
Syntaxe incorrecte vers '@TotalCase'.
Msg*102, Niveau*15, État*1, Procédure*Statistiques, Ligne*20
Syntaxe incorrecte vers '@totalSexe'.
Msg*102, Niveau*15, État*1, Procédure*Statistiques, Ligne*23
Syntaxe incorrecte vers '@totalEtat'.
Msg*102, Niveau*15, État*1, Procédure*Statistiques, Ligne*26
Syntaxe incorrecte vers '@freq'.
Msg*102, Niveau*15, État*1, Procédure*Statistiques, Ligne*29
Syntaxe incorrecte vers '@pctligne'.
Msg*102, Niveau*15, État*1, Procédure*Statistiques, Ligne*32
Syntaxe incorrecte vers '@pctCol'.
Msg*137, Niveau*15, État*2, Procédure*Statistiques, Ligne*34
La variable scalaire "@TotalCase" doit être déclarée.
Si quelqu'un peut m'éclairer sur ces erreurs de syntaxe ça m'aiderai beaucoup :)
Je vous remercie pour votre aide.
Kek's