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 :

Update Case incrémentale [2012]


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 71
    Points : 49
    Points
    49
    Par défaut Update Case incrémentale
    Bonjour tout le monde ,

    J'aurais besoin de votre aide pour une requête UPDATE :

    Voici mon probleme je veux faire un update sur un champ en fonction d'un autre champ :

    mon cas est le suivant :

    si la valeur LIGNE_EF_DESC ='Hors Groupe' alor le champ LIGNE_EF_INDEX =1
    si la valeur LIGNE_EF_DESC ='CAG' alor le champ LIGNE_EF_INDEX =2
    si si la valeur LIGNE_EF_DESC ='CARG' alor le champ LIGNE_EF_INDEX =3

    sinon LIGNE_EF_INDEX=max(LIGNE_EF_INDEX)+1

    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    update dwh.dim_pnl_tunisie
    set LIGNE_EF_INDEX=
    (case LIGNE_EF_DESC when 'Hors Groupe' then 1
    when 'CAG' then 2
    when 'CARG' then 3
    when 'Cout Transport Terrestre' then 3
     
    else LIGNE_EF_INDEX=max(LIGNE_EF_INDEX)+1
    end)
     
    where ligne_ef_index=0

    l'erreur que j'ai est la suivante : Syntaxe incorrecte vers '='

    Merci pour votre aide.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 766
    Points : 52 563
    Points
    52 563
    Billets dans le blog
    5
    Par défaut
    Pourquoi voulez-vous mettre des parenthèses ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    UPDATE dwh.dim_pnl_tunisie
    SET    LIGNE_EF_INDEX = CASE LIGNE_EF_DESC 
                               WHEN 'Hors Groupe' THEN 1
                               WHEN 'CAG'         THEN 2
                               WHEN 'CARG'        THEN 3
                               WHEN 'Cout Transport Terrestre' THEN 3
                               ELSE (SELECT MAX(LIGNE_EF_INDEX)+1 FROM dwh.dim_pnl_tunisie)
                            END
    Votre ELSE ne peut faire un auto incrément directement car il faudrait faire un GROUP BY

    Enfin votre UPDATE n'a aucun intérêt et est même stupide...Car il faudrait le refaire à chaque mise à jour. Vous feriez mieux de faire une vue.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 71
    Points : 49
    Points
    49
    Par défaut
    Merci pour ton aide

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

Discussions similaires

  1. [SQL] UPDATE + CASE + ceci, sur deux variables
    Par logiclogic dans le forum SAS Base
    Réponses: 6
    Dernier message: 31/05/2013, 14h47
  2. update avec Case et PL/SQL
    Par -Mapk- dans le forum PL/SQL
    Réponses: 6
    Dernier message: 12/10/2007, 16h32
  3. [SQL Server 2000]Update avec case
    Par nox75 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 07/10/2007, 20h18
  4. [JTable avancé]Update d'une seule case à moindre coût
    Par nicorama dans le forum Composants
    Réponses: 2
    Dernier message: 15/05/2007, 05h24
  5. Efficacite de CASE dans un UPDATE ?
    Par k'n1 dans le forum MS SQL Server
    Réponses: 29
    Dernier message: 12/12/2006, 10h16

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