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 :

requete update avec select imbriqué


Sujet :

SQL Oracle

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 84
    Points
    84
    Par défaut requete update avec select imbriqué
    Bonjour,

    j'ai du mal a faire une requete d'update avec un select imbriqué.

    J'ai une table accord_paiement ( tres simplifié pour l'exemple):
    idAccord
    accord_ref
    typeAccord
    premierRenouv

    je souhaite updater premierRenouv = 0 pour tous les accords qui ont typeAccord != 5 et le meme accord_ref que des accords dont le typeAccord = 5.

    Exemple

    idAccord--------accord_ref----type_accord-----premierRenouv
    1---------------un------------5
    2---------------deux----------4
    3---------------trois----------2
    4---------------un------------1
    5---------------un------------3
    6---------------trois----------4

    devienne

    idAccord--------accord_ref----type_accord-----premierRenouv
    1---------------un---------------5
    2---------------deux-------------4
    3---------------trois-------------2
    4---------------un---------------1----------------0
    5 ---------------un --------------3--------------0
    6---------------trois -------------4-------------0


    j'ai commencé un peu mais ça ne fonctione pas ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    UPDATE GRPE_ACCORD_PAIEMENT SET premierRenouv = 0 WHERE  cur_acc IN ( 
     
    SELECT acc1.idAccord FROM GRPE_ACCORD_PAIEMENT acc1
    WHERE acc1.typeAccord = 5 and EXISTS 
          (SELECT acc2.idAccord FROM grpe_accord_paiement acc2
              WHERE acc1.acc_ref = acc2.acc_ref
              and acc2.typeAccord != 5
          )
    );
    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 280
    Points : 344
    Points
    344
    Par défaut
    Salut
    essaye ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    UPDATE GRPE_ACCORD_PAIEMENT acc1
    SET premierRenouv = 0
    WHERE typeAccord <> 5
    AND EXISTS (
    	SELECT 1 
    	FROM GRPE_ACCORD_PAIEMENT acc2
    	WHERE acc2.accord_ref = acc1.accord_ref 
    	AND acc2.typeAccord = 5
    	);
    ---
    Farid

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Points : 84
    Points
    84
    Par défaut
    merci c'est ce que j'avais fait apres en faite.

    par contre j'ai un autre ptit souci.

    mon accord peut avoir plusieurs parcelles

    Table accord_parcelle ( idaccord,idParcelle)

    j'aimerais donc modifier ma requete dans le EXISTS pour dire que
    Toutes les parcelles de mon accord acc2 sont exactement celles de mon accord acc1

    [EDIT]
    j'ai réussi en utilisant les ensembles ( Union, minus et intersect)

    (select cur_par from grpe_accord_parc where cur_acc = idAccord
    union select cur_par from grpe_accord_parc where cur_acc = idAccord)

    minus

    (select cur_par from grpe_accord_parc where cur_acc =idAccord
    intersect select cur_par from grpe_accord_parc where cur_acc = idAccord)

    merci

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 280
    Points : 344
    Points
    344
    Par défaut
    heu ...
    j'ai pas tout saisie, mais bon si ton probleme est resolue, c'est le plus important.

    ---
    Farid

Discussions similaires

  1. [Toutes versions] Requete UPDATE avec sous-requete imbriquée
    Par LVELVE dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 09/06/2020, 19h24
  2. Réponses: 15
    Dernier message: 26/11/2014, 14h30
  3. Requete UPDATE avec SELECT sur 2 champs
    Par ngstudio dans le forum Requêtes
    Réponses: 7
    Dernier message: 11/09/2009, 14h47
  4. [Delphi6,Access] Requête update avec select imbriqué
    Par magicstar dans le forum Débuter
    Réponses: 3
    Dernier message: 30/03/2009, 19h40
  5. Requete Update avec Select imbriqué: etrange resultat!
    Par corentone dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/08/2007, 15h05

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