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

Requêtes et SQL. Discussion :

[Requete]Mise a jour d'un champ


Sujet :

Requêtes et SQL.

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 63
    Points : 39
    Points
    39
    Par défaut [Requete]Mise a jour d'un champ
    Bonjour,
    J'ai 2 tables ayant les memes champs mais avec des valeurs qui diffères d'une table a l'autre:
    La table "Valeurs extraites" et celle "Valeurs d'origine"

    J'aimerais faire une requete
    - qui lie les 2 tables,
    - qui compare les valeurs des champs "Compte client" suivant le critere : [Valeurs extraites]![Compte Client]=""
    - qui met a jour [Valeurs extraites]![Compte Client] avec la valeur de [Valeurs d'origine]![Compte Client]

    Est ce que quelqu'un pourrait m'aider a faire ce test ainsi que cette mise a jour?
    Merci d'avance

  2. #2
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 799
    Points
    799
    Par défaut
    Salut,

    Tu peux essayer:

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE ValeurOrigine LEFT JOIN ValeurExtraite ON ValeurOrigine.CompteClient = ValeurExtraite.CompteClient SET ValeurExtraite.CompteClient = ValeurOrigine.CompteClient;

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    UPDATE [Valeurs extraites] INNER JOIN [Valeurs d'origine] ON [Valeurs extraites].ChampDeLiasion = [Valeurs d'origine].ChampDeLiasion SET [Valeurs extraites].[Compte Client] = [Valeurs d'origine].[Compte Client]
    WHERE ((([Valeurs extraites].[Compte Client]) Is Null));
    Remplaces ChampDeLiasion par sa véritable valeur.
    Amicalement

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 63
    Points : 39
    Points
    39
    Par défaut
    Jai essayé vos 2 solutions:
    -celle de ft035580 me met a jour toutes les valeurs de ma base
    -celle de DMBoup ne me met à jour aucune valeur.

    J'aimerai avoir qq info:
    -quelle est la différence entre INNER JOIN et LEFT JOIN?
    -Est ce que ca change si on met la condition "[ValeurExtraite].CompteClient<>[ValeurOrigine].CompteClient" avant ou apres le SET?

    Merci

  5. #5
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 799
    Points
    799
    Par défaut
    Citation Envoyé par le_gueux90
    celle de ft035580 me met a jour toutes les valeurs de ma base
    J'avais cru comprendre que tu voulais mettre les données non existantes de ta table origine dans ta table extraite.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 63
    Points : 39
    Points
    39
    Par défaut
    C'est exact. Les données qui different entre ValeurOrigine.[CompteClient] et ValeurExtraite.[CompteClient] doivent etre remplacée par ValeurOrigine.[CompteClient].

    Il y a quand meme des valeurs egales entre les 2 tables.

  7. #7
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 799
    Points
    799
    Par défaut
    Salut,

    Imaginons

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    TableExtraite       TableOrigine  
    CompteClient        CompteClient
    1                             1
    4                             2
                                  3
                                  4
                                  5
                                  6
    Tu veux que cela devienne ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    TableExtraite       TableOrigine  
    CompteClient        CompteClient
    1                             1
    4                             2
    2                             3
    3                             4
    5                             5
    6                             6

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 63
    Points : 39
    Points
    39
    Par défaut
    Voici les nouveautés de mon problème:
    j'arrive bien a repérer les valeurs qui diffèrent d'une table a l'autre mais lors de la mise a jour, la valeur affectée est mise a 0.
    Par exemple:
    Avant l'execution de la requete
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Provisions_creance.CentreProfit       Base_F103.CentreProfit
    100.5                                            100
    100                                               100
    ZR                                                 200
                                                         200

    Apres l'execution de la requete
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Provisions_creance.CentreProfit       Base_F103.CentreProfit
    0                                                   100
    100                                               100
    200                                               200
                                                         200

    J'ai regarder s'il n'y avait pas de pb de typage ms les 2 champs sont de type texte donc ca ne vien pas de la.

    Quelqu'un saurait pourquoi?
    Merci d'avance

Discussions similaires

  1. [AC-2007] Requete Mise a jour selection sur 2 champs
    Par afilot dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 27/04/2013, 22h38
  2. Decrémenter un champ dans requete mise a jour
    Par scrat57000 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 20/07/2007, 13h31
  3. VB6 Access Mise a jour d'un champ
    Par getea85 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 24/08/2006, 16h21
  4. Est-ce Cela Peut Fonctionner Requetes Mise A Jour
    Par dauphin34000 dans le forum Oracle
    Réponses: 22
    Dernier message: 28/04/2006, 13h08
  5. Probleme avec une requete mise a jour
    Par mael94420 dans le forum ASP
    Réponses: 2
    Dernier message: 08/03/2006, 20h56

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