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

Développement SQL Server Discussion :

Faire un UPDATE avec un CASE


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Points : 55
    Points
    55
    Par défaut Faire un UPDATE avec un CASE
    Bonjour à tous,

    Je cherche à faire la chose suivante.

    J'ai deux tables temporaires.

    TABLE1 (ID, NumIndicateur, ValeurIndicateur)
    Les indicateurs sont numérotés de 1 à 30.
    La clé primaire est composé de ID et NumIndicateur

    TABLE2 (ID, ValeurIndicateur1, ValeurIndicateur2 ...., ValeurIndicateur30)
    La clé primaire est ID

    La table 1 contient pour chaque ID plusieurs indicateurs avec la valeur de ce dernier.
    La table 2 contient uniquement les différents ID.

    Je souhaite renseigner la valeur des indicateurs dans ma table 2.

    J'ai essayé le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    update Table2
    SET 	ValeurIndicateur1 = case when Table1.NumIndicateur = 1 then  Table1.ValIndicateur,
    ValeurIndicateur2 = case when Table1.NumIndicateur = 2 then Table1.ValIndicateur,
    ...etc...
    ValeurIndicateur30 = case when Table1.NumIndicateur = 30 then
    Table1.ValIndicateur
     
    from Table1
     
    where Table1.ID = Table2.ID
    Néanmoins ce code ne me renseigne pas toutes les données.
    Je me retrouve avec pleins de valeurs nulles (quasiment toutes) alors qu'elles sont bien présentes dans ma table1.

    Les quelques données présentes sont pourtant les bonnes.

    Est-ce quelqu'un aurait déjà rencontré ce problème?

    Merci d'avance.

  2. #2
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Points : 55
    Points
    55
    Par défaut
    L SGBD est SQL Server 2005

  3. #3
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 756
    Points : 2 990
    Points
    2 990
    Par défaut
    Il me semble que ta clause FROM est incorrecte.

    Sauf erreur (je n'ai pas encore bu de café), tu devrais inscrire

    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  4. #4
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Points : 55
    Points
    55
    Par défaut
    Ok je vais essayer cette solution ...

    Je cherche également à créer une table temporaire avec un champ auto incrémenté sous SQL Server 2005.
    Est-ce possible ?

  5. #5
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 121
    Points : 55
    Points
    55
    Par défaut
    Solution pour le champ auto incrémenté en sql server

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    create table #tmp(
    [id] INT NOT NULL IDENTITY(1,1), --champ auto incrémenté
    [var1] [float]
    .
    .
    .
    .)

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 30/11/2009, 11h14
  2. [ADO] faire une Update avec un recordset
    Par maniolo dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 21/08/2006, 22h18
  3. [VB] faire un update avec une bdd en xml
    Par ekmule dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 01/02/2006, 22h41
  4. Faire un update avec une ss requete renvoyant plusieur row
    Par djodjo dans le forum Langage SQL
    Réponses: 6
    Dernier message: 02/09/2005, 15h51
  5. [ SQL ] Faire un update avec un select imbriqué
    Par zozolh2 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 11/04/2005, 12h05

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