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.

  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
    C'est ca. Sauf que

    TableExtraite TableOrigine
    CompteClient CompteClient
    1 1
    4 2
    3
    4
    5
    6

    deviendrait:

    TableExtraite TableOrigine
    CompteClient CompteClient
    1 1
    2 2
    3 3
    4 4
    5 5
    6 6

    Les "1" sont identique donc on ne change pas, ms tout le reste est modifié car les valeurs sont differentes.

  9. #9
    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
    J'aimerais faire une requete
    - qui lie les 2 tables,
    Et une simple requête UNION

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT ValeurExtraite.CompteClient
    FROM ValeurExtraite
    UNION SELECT ValeurOrigine.CompteClient
    FROM ValeurOrigine;

  10. #10
    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
    Je joins un imprime ecran qui sera peu etre plus comprehensible que mes explications:

    la table Base_F103_bis est la table ValeurOrigine
    la table Provision_creance est la table valeur extraite

    J'ai creer une requete Mise a jour pour mettre a jour le champ Provision_creance.Centre de profit avec les criteres suivant:
    - Provision_creance.Centre de profit<>Base_F103_bis.Centre de profit
    - Provision_creance.Centre de profit like null

    Il y a toujours un probleme, lorsque je lance la requete jai un message de mise a jour de 103 lignes mais aucune n'est modifiée.
    Images attachées Images attachées  

  11. #11
    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
    Citation Envoyé par ft035580
    Et une simple requête UNION
    Une requête UNION ne met jamais à jour !

    Citation Envoyé par le_gueux90
    - Provision_creance.Centre de profit<>Base_F103_bis.Centre de profit
    - Provision_creance.Centre de profit like null

    Il y a toujours un probleme, lorsque je lance la requete jai un message de mise a jour de 103 lignes mais aucune
    Si la relation entre tes deux tables n'est pas respectée, tu n'auras aucune mise à jour.
    Amicalement

  12. #12
    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 DMboup,

    Citation Envoyé par DMboup
    Une requête UNION ne met jamais à jour !
    J'ai proposé cette solution quand j'ai relu le post:

    Citation Envoyé par Le_Gueux90
    J'aimerais faire une requete
    - qui lie les 2 tables,

  13. #13
    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
    Est ce que ma requete sur access est correcte?
    C'est une requete de mise a jour.
    Images attachées Images attachées  

  14. #14
    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