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

MS SQL Server Discussion :

Commande UPDATE + Sous requetes ?


Sujet :

MS SQL Server

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 13
    Points : 5
    Points
    5
    Par défaut Commande UPDATE + Sous requetes ?
    Bonjour,

    Je souhaiterai mettre à jour les champs d'une table en y appliquant une condition.

    Voici la requete que j'utilise :

    update necb
    set val8 = (select t1.date2
    FROM copievalence.dbo.da_archive as t1, cibleservice.dbo.necb as t2
    WHERE t1.nid = 'B-01' and t2.numimage=t1.aid)

    J'obtiens le message d'erreur suivant :

    Serveur : Msg 512, Niveau 16, État 1, Ligne 1
    La sous-requête a retourné plusieurs valeurs. Cela n'est pas autorisé quand la sous-requête suit =, !=, <, <= , >, >= ou quand elle est utilisée en tant qu'expression.
    L'instruction a été arrêtée.

    Je n'arrive pas à trouver d'infos sur l'utilisation de sous requetes dans la commande update ...

    Merci par avance pour votre aide,

    a+

    rp

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    356
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 356
    Points : 406
    Points
    406
    Par défaut
    Ton utilisation de la sous-requête n'est pas le bon. Il faut formater ta requête d'update de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    UPDATE necb
    SET val8 = t1.date2
    FROM copievalence.dbo.da_archive as t1, cibleservice.dbo.necb as t2
    WHERE t1.nid = 'B-01' AND t2.numimage=t1.aid
    Essaye de cette manière. Je pense que cela résolvera ton problème.

  3. #3
    Futur Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Effectivement ca fonctionne mieux ainsi !

    Merci !

    a+

    romain

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 17
    Points : 17
    Points
    17
    Par défaut
    Bonjour

    je rencontre le même pb et les différentes facons d'écrire la requète ne change rien : toujours le même msg

    voici les différents modèles essayés

    update coutsinf
    set coderap=(select r.coderap from
    (select coutsinf.idcoutsinf,lotprojet.idlotprojet,projet.coderap
    from projet,lotprojet,coutsinf
    where lotprojet.codeprj=projet.codeprj and coutsinf.idlotprojet=lotprojet.idlotprojet)r,coutsinf
    where coutsinf.idcoutsinf=r.idcoutsinf)

    ou

    update coutsinf
    set coderap=t1.coderap
    from projet as t1 ,lotprojet as t2 ,coutsinf as t3
    where t2.codeprj=t1.codeprj and t3.idlotprojet=t2.idlotprojet

    merci de votre aide

  5. #5
    Membre éclairé
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Points : 777
    Points
    777
    Par défaut
    Citation Envoyé par jibileg Voir le message
    Bonjour

    je rencontre le même pb et les différentes facons d'écrire la requète ne change rien : toujours le même msg

    voici les différents modèles essayés

    update coutsinf
    set coderap=(select r.coderap from
    (select coutsinf.idcoutsinf,lotprojet.idlotprojet,projet.coderap
    from projet,lotprojet,coutsinf
    where lotprojet.codeprj=projet.codeprj and coutsinf.idlotprojet=lotprojet.idlotprojet)r,coutsinf
    where coutsinf.idcoutsinf=r.idcoutsinf)

    ou

    update coutsinf
    set coderap=t1.coderap
    from projet as t1 ,lotprojet as t2 ,coutsinf as t3
    where t2.codeprj=t1.codeprj and t3.idlotprojet=t2.idlotprojet

    merci de votre aide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    UPDATE Coutsinf SET Coderap = Projet.Coderap
    FROM Coutsinf 
        INNER JOIN Projet ON Codesinf.codeprj = Projet.codeprj AND Coutsinf.idlotprojet = Projet.idlotprojet
    Je te conseil de faire des jointure avec des join au lieu d'utiliser le where. Cela donne du code plus robuste/flexible/lisible

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 17
    Points : 17
    Points
    17
    Par défaut
    J'ai essayé et j'ai toujours le même message
    Cela donne l'impression qu'il n'arrive pas à récupérer l'id de la ligne à mettre à jour et donc le résultat de la requète n'est pas filtré et donc bien sur il me renvoit toutes les lignes au lieu d'une.
    J'ai vérifié mes tables, pas de doublons...

    Dois je passer par du code pour faire cette maj ?

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

Discussions similaires

  1. optimisation requete insert ou update sous postgres
    Par peppena dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 01/03/2007, 11h21
  2. Requete Update sous Acces à partir d'une autre
    Par Le_Phasme dans le forum Access
    Réponses: 1
    Dernier message: 09/10/2006, 10h48
  3. Requete Update avec sous requete
    Par joziel dans le forum Langage SQL
    Réponses: 7
    Dernier message: 28/08/2006, 15h15
  4. problème update avec sous requetes
    Par stoz dans le forum Langage SQL
    Réponses: 6
    Dernier message: 12/10/2005, 16h44
  5. [UPDATE]Sous-requetes avec plusieurs nuplets
    Par Tchinkatchuk dans le forum Langage SQL
    Réponses: 2
    Dernier message: 11/07/2005, 18h28

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