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

Langage SQL Discussion :

[requete]mise à jour entre table


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 86
    Points : 62
    Points
    62
    Par défaut [requete]mise à jour entre table
    Bonjour je veux mettre à jour les données d'une table à partir d'une autre j'ai essayé avec le code suivant et ça me retourne erreur de syntaxe de la fonction upadate, quelqu'un pourrait t'il maider à voir ce qui ne va pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE Juillet06
     inner join Chronotemp
    SET Juillet06.Garant= Chronotemp.Garant
    where Juillet06.Numéro=Chronotemp.Numéro;

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Information indispensable pour pouvoir te répondre :
    Quel est ton SGBD ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Rédactrice

    Avatar de Fleur-Anne.Blain
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 637
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 637
    Points : 6 805
    Points
    6 805
    Par défaut
    LU,

    Il me semble que c'est ton INNER JOIN qui pose pb!!!
    la culture c'est comme la confiture moins on en a plus on l'étale.

    Mes tutos

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 140
    Points : 166
    Points
    166
    Par défaut
    Bonjour,

    Comme le dit Al1_24, il faudrait donner ton SGBD.

    Sinon l'Update serait plutot :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    UPDATE Juillet06
    SET Juillet06.Garant= Chronotemp.Garant
    from Juillet06 inner join Chronotemp
    on Juillet06.Numéro=Chronotemp.Numéro

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Citation Envoyé par mdevlieg
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    UPDATE Juillet06
    SET Juillet06.Garant= Chronotemp.Garant
    from Juillet06 inner join Chronotemp
    on Juillet06.Numéro=Chronotemp.Numéro
    Qu'est-ce-que c'est que cette syntaxe ????

    Personnellement, je ne connais que cette syntaxe à base de sous-requête : http://sql.developpez.com/sqlaz/dml/#L3.5
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  6. #6
    Rédactrice

    Avatar de Fleur-Anne.Blain
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 637
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 637
    Points : 6 805
    Points
    6 805
    Par défaut
    Pour son pb, j'ai trouvé personnelement la même syntaxe que mdevlieg, mais j'avoue je ne l'ai jamais utilisée!!!
    la culture c'est comme la confiture moins on en a plus on l'étale.

    Mes tutos

  7. #7
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Pour une requête à base de sous-requête, tu pourrais faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    UPDATE Juillet06
    SET Juillet06.Garant = (SELECT Chronotemp.Garant
                                   FROM Chronotemp
                                   WHERE Juillet06.Numéro = Chronotemp.Numéro
                                   )
    Ce qui est tout à fait conforme au standard SQL... à la condition bien sur que la sous requête ne retourne qu'une seule ligne !!!
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  8. #8
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 86
    Points : 62
    Points
    62
    Par défaut
    Alors j'utilise Access pour faire ma base de donnée.

    Lorsque je rentre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE Juillet06 SET Juillet06.Garant = (SELECT Chronotemp.Garant
                                   FROM Chronotemp
                                   WHERE Juillet06.Numéro = Chronotemp.Numéro
                                   );
    Et que j'execute il me met un message d'erreur:
    L'opération doit utiliser une requete qui peut être mis à jour

  9. #9
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Juillet06 : est-ce une table ou une vue ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  10. #10
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 86
    Points : 62
    Points
    62
    Par défaut
    Juillet06 est une table.

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 140
    Points : 166
    Points
    166
    Par défaut
    Citation Envoyé par Magnus
    Qu'est-ce-que c'est que cette syntaxe ????

    Personnellement, je ne connais que cette syntaxe à base de sous-requête : http://sql.developpez.com/sqlaz/dml/#L3.5
    Je confirme que çà marche sur Sybase, ce n'est peut être pas l'écriture la plus performante.

  12. #12
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 86
    Points : 62
    Points
    62
    Par défaut
    Pour le code de mdevlieg, acces m'envoie erreur de syntaxe.

  13. #13
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 86
    Points : 62
    Points
    62
    Par défaut
    Voila j'ai réussi à résoudre mon problème le code est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    UPDATE Juillet06 INNER JOIN ChronoTemp 
    ON [Juillet06].[Numéro]=[ChronoTemp].[Numéro] 
    SET Juillet06.Garant = [Chronotemp].[Garant]
    WHERE Juillet06.Numéro in (select Numéro from Juillet06 );
    Merci à vous pour votre aide.

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

Discussions similaires

  1. [AC-2010] Requete mise à jour entre table et requete
    Par Mut dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 13/06/2012, 09h55
  2. [AC-2007] Requete mise à jour entre 2 tables
    Par Greg47 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 12/05/2010, 16h51
  3. Mise à jour entre table liée et table access
    Par Sprsrini dans le forum Requêtes et SQL.
    Réponses: 14
    Dernier message: 30/09/2008, 20h47
  4. requete mise à jour à deux tables
    Par gberthier dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 19/03/2008, 08h58
  5. Mise à jour entre tables...
    Par brisbris dans le forum Access
    Réponses: 11
    Dernier message: 02/05/2006, 13h54

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