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

SQL Oracle Discussion :

Transformer un update en merge


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Par défaut Transformer un update en merge
    Salut ,
    Je souhaite transformer l'UPDATE suivant en MERGE tout en faisant 1 seul SELECT d'un coup avec jointure des 4 tables et appliquer SELECT...CASE WHEN au lieu de CASE WHEN ...SELECT ...

    cd_par est une donnée obligatoire dans chaque table.

    Merci de votre aide.

    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
     
    UPDATE PRODUITS P
    SET  P.status         = 'A'
        ,P.cd_type = (CASE WHEN (SELECT  1 FROM PARAM PRM  WHERE PRM.cd_par = 2012  AND PRM.cd_par = P.cd_par  AND PRM.id_auto = P.id_auto) = 1
                      THEN 'P1' 
    				  ELSE (SELECT  MIN(D.cd_FLO) KEEP(DENSE_RANK FIRST ORDER BY D.no_ordre)
                                               FROM  DIR D,COM  C
                                               WHERE            P.cd_par   =    2012
                                                            AND D.cd_par   =    2012
                                                            AND C.cd_par   =    2012
                                                            AND D.cd_par   = C.cd_par
                                                            AND P.id_COM   = C.id_COM
                            )
     				 END)
    WHERE P.cd_par  = 2012
      and P.cd_typ  = 'OK' ;

  2. #2
    Membre confirmé
    Homme Profil pro
    Consultant
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Par défaut
    bonjour
    Quand faut-il transformer un UPDATE en MERGE ?
    merci

  3. #3
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    • Quand c’est possible
    • Quand c’est efficace

Discussions similaires

  1. Insert ou update avec Merge
    Par oumlike dans le forum Firebird
    Réponses: 5
    Dernier message: 07/09/2011, 14h34
  2. Réponses: 5
    Dernier message: 13/12/2010, 14h25
  3. Transformer insert into en update
    Par DeZanGe dans le forum Langage SQL
    Réponses: 13
    Dernier message: 04/12/2007, 09h18
  4. Probleme Merge a cause du UPDATE WHERE
    Par Flipmode dans le forum SQL
    Réponses: 6
    Dernier message: 27/06/2007, 18h27
  5. [XLM/XSL]Merge de plusieurs transformations
    Par sozie9372 dans le forum XSL/XSLT/XPATH
    Réponses: 28
    Dernier message: 21/06/2006, 16h51

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