IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Syntaxe incorrecte vers le mot clé 'case'.


Sujet :

MS SQL Server

  1. #1
    Membre habitué Avatar de anayathefirst
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 326
    Points : 182
    Points
    182
    Par défaut Syntaxe incorrecte vers le mot clé 'case'.
    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 …

  2. #2
    Rédactrice

    Avatar de Fleur-Anne.Blain
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 637
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 637
    Points : 6 805
    Points
    6 805
    Par défaut
    A première vue déjà il faut que tu utilises une variable pour ton cas, tu ne peux pas utiliser un case comme ca. Tu as un exemple pour la syntaxe ici a priori sur ton @listeMois

  3. #3
    Membre habitué Avatar de anayathefirst
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 326
    Points : 182
    Points
    182
    Par défaut
    salut,
    dans mon cas, je ne veux pas l'utiliser comme un "swich" mais comme un "if", dans le lien que tu m'as proposé, il y a un exemple sans variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    case when p.action < 200 then ...
    je ne voie pas comment résoudre ça

  4. #4
    Rédactrice

    Avatar de Fleur-Anne.Blain
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 637
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 637
    Points : 6 805
    Points
    6 805
    Par défaut
    Citation Envoyé par anayathefirst Voir le message
    je ne voie pas comment résoudre ça

    Par un IF??? pourquoi faire compliqué quand on peut faire simple....

  5. #5
    Membre habitué Avatar de anayathefirst
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    326
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 326
    Points : 182
    Points
    182
    Par défaut
    commentdire ...
    j'avais déja utilisé 'case' dans des requêtes par ce que le IF n'était pas reconnu, mais je ne savais pas que IF existait en T-SQL pour les procédure stockée
    merci ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL-Server] Syntaxe incorrecte vers 'from'
    Par lobna.tn dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 01/09/2009, 11h41
  2. erreur du type syntaxe incorrecte vers '='
    Par Djclo dans le forum ASP.NET
    Réponses: 4
    Dernier message: 17/11/2008, 10h03
  3. Syntaxe incorrecte vers ')'
    Par Nako_lito dans le forum Services Web
    Réponses: 2
    Dernier message: 16/06/2008, 11h31
  4. Syntaxe incorrecte vers 'where'.
    Par lepeintre dans le forum ASP
    Réponses: 15
    Dernier message: 19/05/2005, 11h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo