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 :
et les erreurs qui pop :
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
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
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
Partager