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 :

MaJ d'une table


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 57
    Points : 57
    Points
    57
    Par défaut MaJ d'une table
    Bonjour.
    J'ai un petit problème. j'essaye de faire une requête Update sur une table avec comme condition le fait que le numéro unique soit le même. Je travail sur access 2007 et il me met une belle erreur. Merci de votre aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE TEST
    SET TEST.monchamp = (SELECT testLeRetour.monchamp
                                   FROM testLeRetour, TEST
                                   WHERE testLeRetour.pknum = TEST.pknum)
    ;

  2. #2
    Membre habitué Avatar de Scual
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2006
    Messages : 149
    Points : 189
    Points
    189
    Par défaut
    Bonjour,

    Quelle est l'erreur ?

    ++

  3. #3
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 644
    Points
    4 644
    Par défaut
    et la belle erreur est ??? Mystère??

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 57
    Points : 57
    Points
    57
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    L'opération doit utiliser une requête qui peut être mise à jour
    c'est la première fois que je vois ça... et je ne sais pas d'ou ça vient.
    Merci de vos réponse rapide et j'espère que ça se soigne docteur

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 57
    Points : 57
    Points
    57
    Par défaut
    j'ai peut-etre évoluer. mais j'ai un message louche :
    "cette sous-requête peut retourner au plus un enregistrement"
    voila mon nouveau code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    UPDATE TEST
    SET TEST.monchamp= 'O'
    WHERE TEST.pknum=  (SELECT testLeRetour.pknum
                                               FROM testLeRetour
                                               where testLeRetour.monchamp = 'O'
                                                 )
     
    ;

  6. #6
    Membre habitué Avatar de Scual
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    149
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2006
    Messages : 149
    Points : 189
    Points
    189
    Par défaut
    Là, c'est déjà plus clair pour moi

    La sous-requête renvoie plusieurs lignes pour le même ID apparement.

    Essayes de passer la sous-requête seule pour voir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT testLeRetour.pknum
    FROM testLeRetour
    WHERE testLeRetour.monchamp = 'O'
    Pour pouvoir l'utiliser dans une sous-requête avec un = pour comparaison, il te faut un seul réustat sinon, remplaces le = par un IN.

    ++

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 57
    Points : 57
    Points
    57
    Par défaut
    alright ! c'est bon, merci
    j'avais uniquement oublié de gérer les années dans ma table... ce qui ne pouvait que peu marcher. merci

    PS: c'est loin les cours de sql... on oublie tout avec le temps

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 57
    Points : 57
    Points
    57
    Par défaut
    Non, mais en fait, c'est pas ça que je cherche (je suis fatigué, il faut me pardonner)

    j'aimerait copier toutes les valeur de l'autre côté comme expliqué au début

    (récapitulatif :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE TEST
    SET TEST.monchamp = (SELECT testLeRetour.monchamp
                                   FROM testLeRetour, TEST
                                   WHERE testLeRetour.pknum = TEST.pknum)
    ;
    )
    j'aimerait copier dans l'autre table toutes mes valeurs. Est-ce possible ?

  9. #9
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2005
    Messages : 357
    Points : 537
    Points
    537
    Par défaut
    Salut,
    Ca s'rait-y pas ça que tu veux faire ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    UPDATE TEST as t, testLeRetour as r
    SET t.monchamp = r.monchamp
    where t.pknum = r.pknum
    ;

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 57
    Points : 57
    Points
    57
    Par défaut
    (houla, j'ai réelement besoin de repos moi)
    c'est parfaitement ça. je ne sais pas pourquoi je suis partit dans l'idée de mettre des requêtes imbriquées. Merci pour votre aide et bonne fin de journée

  11. #11
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2005
    Messages : 357
    Points : 537
    Points
    537
    Par défaut
    Hé oui, pourquoi faire compliqué quand on on peut faire simple

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

Discussions similaires

  1. [SQL2k5SP1] Maj d'une table par importation
    Par Peck777 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 10/09/2006, 11h39
  2. [8i] MAJ d'une table via un fichier texte
    Par ApprentiOracle dans le forum SQL
    Réponses: 3
    Dernier message: 01/08/2006, 16h08
  3. Maj d'une table à partir d'une autre
    Par gleferrec dans le forum Oracle
    Réponses: 1
    Dernier message: 24/01/2006, 11h10
  4. Erreur de maj d'une table !
    Par smail21 dans le forum Bases de données
    Réponses: 6
    Dernier message: 30/08/2005, 15h18
  5. MAJ d'une table sous SQL Server par insertion
    Par keish dans le forum Langage SQL
    Réponses: 6
    Dernier message: 11/06/2003, 16h23

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