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

 Oracle Discussion :

Update avec jointure et case


Sujet :

Oracle

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 321
    Points : 109
    Points
    109
    Par défaut Update avec jointure et case
    bonjour j'essaie de réaliser une mise à jour sur un champ par rapport à un champ d'une autre table et en fonction d'une clause where

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Update (select es.ST_ST as stat  ,np.fr as i from CES es, COM np where es.CD=np.CD) t  set t.stat =
    (case
    when t.i='D' then '0' 
    when t.i='Q' then '0'
    when t.i is null then 'X'
    else '1'
    end);
    je n'ai que des privilèges select sur la table COM et la table CES j'ai lezs privilèges d'update et select...

    et cette expression me renvoie une erreur de privilèges insuffisant..... pourtant j'essaie bien de mettre à jour la bonne table....
    bref si quelqu'un peut m'aider.....

    merci

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 814
    Points
    17 814
    Par défaut
    Essayez comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    update CES
       set ST_ST = (select case
                             when fr = 'D'   then '0'
                             when fr = 'Q'   then '0'
                             when fr is null then 'X'
                             else '1'
                           end
                      from COM
                     where COM.CD = CES.CD)
     where exists (select null
                     from COM
                    where COM.CD = CES.CD);
    Ou comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     merge into CES
     using COM
        on (COM.CD = CES.CD)
      when matched then
    update set CES.ST_ST = case
                             when COM.fr = 'D'   then '0'
                             when COM.fr = 'Q'   then '0'
                             when COM.fr is null then 'X'
                             else '1'
                           end;

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    321
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 321
    Points : 109
    Points
    109
    Par défaut
    ok, merci:-)

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

Discussions similaires

  1. UPDATE avec jointure + case..
    Par Fingertip dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/08/2011, 11h08
  2. [UPDATE] avec jointure sur une requete
    Par userB dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 20/07/2007, 17h18
  3. Requete update avec jointure d'une requête
    Par bart64 dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 28/05/2007, 21h31
  4. [PL/SQL] update avec jointure
    Par Fox_magic dans le forum Oracle
    Réponses: 6
    Dernier message: 09/12/2004, 13h19
  5. Script avec JOINTURE et CASE
    Par Labienus dans le forum Langage SQL
    Réponses: 6
    Dernier message: 27/02/2004, 10h40

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