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

PL/SQL Oracle Discussion :

mise à jour de plusieurs col en une seule req


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 86
    Par défaut mise à jour de plusieurs col en une seule req
    Bonjour,

    Je cherche à faire un update comme ci-dessous :
    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
     
    UPDATE ma_table o SET (o.col1, o.col2, o.col3, o.col4) =
                 (SELECT sum(tm1.montant), sum(tm2.montant), sum(tm3.montant), sum(tm4.montant)
                   FROM table_inter tm1, table_inter tm2, table_inter tm3, table_inter tm4
                  WHERE tm1.num = o.num
                  AND tm1.type in ('COND1')
     
                  AND tm2.num = o.num
                  AND tm2.type in ('COND2')
     
                  AND tm3.num = o.num
                  AND tm3.type in ('COND3')
     
                  AND tm4.num = o.num
                  AND tm4.type in ('COND4')
     
                  group by o.num
                 )
    mais ça ne marche pas!!

    pourriez-vous m'éclairer pourquoi?

    Merci

  2. #2
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Par défaut
    Citation Envoyé par radahm Voir le message
    ...mais ça ne marche pas!!
    C'est normal ! Par défaut, SQL*Plus n'accepte pas les lignes vides.

  3. #3
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Et surtout votre requête me paraît fausse.
    Essayez celle-ci :
    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
    UPDATE ma_table o
    SET (o.col1, o.col2, o.col3, o.col4) =
        (
        select
            sum(case tm.type when 'COND1' then montant else 0 end) as mnt_1,
            sum(case tm.type when 'COND2' then montant else 0 end) as mnt_2,
            sum(case tm.type when 'COND3' then montant else 0 end) as mnt_3,
            sum(case tm.type when 'COND4' then montant else 0 end) as mnt_4
        from
            table_inter tm
        where
            tm.num = o.num
        and tm.type IN ('COND1', 'COND2', 'COND3', 'COND4')
        )
    WHERE EXISTS (select null
                  from table_inter tm
                  where tm.num = o.num
                  and tm.type IN ('COND1', 'COND2', 'COND3', 'COND4'));

Discussions similaires

  1. [XL-2003] Copier plusieurs feuilles en une seule, avec mis à jour auto
    Par lexus92 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 22/02/2012, 13h22
  2. Mise à jour de plusieurs sur une table
    Par Ordonnateur dans le forum Oracle
    Réponses: 1
    Dernier message: 23/01/2012, 14h33
  3. Réponses: 2
    Dernier message: 21/09/2009, 14h20
  4. Mise à jour de plusieurs classeurs depuis une
    Par Zak Blayde dans le forum Excel
    Réponses: 7
    Dernier message: 03/07/2008, 09h33
  5. Réponses: 6
    Dernier message: 29/06/2006, 14h00

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