salut,
ça doit être une erreur toute bête, mais j'ai lu et relu mon code, je ne voie pas ce qui ne va pas,
je cherche à concaténer les éléments de ma base de données, avec certains critères, je me suis dis qu'il valais mieux utiliser un curseur et des case, mais j'ai l'erreur :
Msg 156, Niveau 15, État 1, Procédure updateDropdownListsTable, Ligne 45
Syntaxe incorrecte vers le mot clé 'case'.
Msg 156, Niveau 15, État 1, Procédure updateDropdownListsTable, Ligne 48
Syntaxe incorrecte vers le mot clé 'else'.
Msg 102, Niveau 15, État 1, Procédure updateDropdownListsTable, Ligne 179
Syntaxe incorrecte vers 'end'.
Et cela en utilisant un code tout ce qu'il y a de plus basique. Le voici :
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
USE [MyDatabase]
GO
/****** Objet :  StoredProcedure [PRS].[updateDropdownListsTable]    Date de génération du script : 08/21/2007 15:59:13 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[updateDropdownListsTable]
as
begin
	set nocount on;
--déclaration de variables
declare @listeAnnée varchar(8000)
--
declare @listeMois varchar(8000)
--
 
--colonnes temopraires
declare @tempAnnée numeric(4,0)
declare @tempCodeMois numeric(2, 0)
declare @tempLibelléMois nvarchar(50)
 
--initialisation des variables
set @listeAnnée= ''
--
set @listeMois= ''
 
--
declare curseurExerciceEtmois cursor
for select distinct qqanne, qqmois, libelmois from cbinfap join mois on qqmois=codemois order by qqanne,qqmois
open curseurExerciceEtmois 
fetch curseurExerciceEtmois into @tempAnnée, @tempCodeMois, @tempLibelléMois
 
while @@fetch_status = 0
begin
	set @listeAnnée=@listeAnnée + '|' + cast(@tempAnnée as varchar(12))
	case
		when (@listeMois like '%||' + cast(@tempAnnée as varchar(12) + '|%')
		then set @listeMois = @listeMois + '||' + cast(@tempAnnée as varchar(12)) + '|' + @tempLibelléMois
		else set @listeMois = @listeMois+'|' + @tempLibelléMois
	end
	fetch curseurExerciceEtmois into @tempAnnée, @tempCodeMois, @tempLibelléMois
end
close curseurExerciceEtmois
deallocate curseurExerciceEtmois
 
delete from dropdownliststable
insert into dropdownliststable
(
listeExercices,
listePériodes
)values
(
@listeAnnée,
@listeMois
)
 
end
vous aurez surement plus de recul que moi pour détecter ma bêtise …