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 :

[Access] Jointure et remplacement sql


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 13
    Par défaut [Access] Jointure et remplacement sql
    Bonjour,

    Voila le probleme jai deux tables l'une avec deux champs produit_name_1 & quantite et l'autre avec 3 champs produit_name_1, produit_name_2, quantite.

    Jaimerais en fait remplacer les produit_name_1 dans la table 1 si ils sont present dans la table 2 par leurs produit_name_2 et leurs quantites correspondantes.
    Il peut y avoir plusieurs produit_name_2 pour un produit_name_1 dans la table 2.

    Avant de me lancer des requetes barbares jaimerais savoir si vous pensez qu'ils est possible en une requete dobtenir le resultat directement ?

    Merci beaucoup!

  2. #2
    Scorpi0
    Invité(e)
    Par défaut
    Faisable oui.
    Il te reste à déterminer qu'est ce que tu doit faire lorsqu'il existe plusieurs produit 2, lequel prendre pour la mise à jour, et ensuite, on pourra t'envoyer des requêtes barbares

  3. #3
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 13
    Par défaut
    L'idee est davoir plus que deux champs produit_name_1 et SUM(quantite) avec les produit 1 remplaces par leurs produits 2 si necessaire.

    Juste je precise que les produits 2 peuvent etre different ou egaux peu importe...car une fois encore lidee cest de somme les quantites par produits.

    Merci pour ton aide Scorpi0 !!

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 955
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 955
    Par défaut
    Salut,
    Citation Envoyé par matel Voir le message
    Jaimerais en fait remplacer les produit_name_1 dans la table 1 si ils sont present dans la table 2 par leurs produit_name_2 et leurs quantites correspondantes.
    Citation Envoyé par matel Voir le message
    L'idee est davoir plus que deux champs produit_name_1 et SUM(quantite)
    Pour moi c'est pas très clair, peux tu nous fournir un jeu de test et le résultat escompté ?

  5. #5
    Scorpi0
    Invité(e)
    Par défaut
    Pour être sûr qu'on soit tous d'accord :

    Table1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    produit_name_1  quantite 
    --------------  ----------
    P1                   5
    P2                   6
    Table2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    produit_name_1    produit_name_2   quantite 
    --------------   ----------------   ----------
    P1                           P3                6
    P1                           P4                12
    P2                           P5                56
    P2                           P6                1
    Résultat voulu dans la table 1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    produit_name_1  quantite 
    --------------  ----------
    P1                   18 (6+12)
    P2                   57 (56+1)
    ?

  6. #6
    Membre éclairé
    Avatar de witch
    Inscrit en
    Mai 2007
    Messages
    346
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2007
    Messages : 346
    Par défaut
    Bonjour,

    Jaimerais en fait remplacer les produit_name_1 dans la table 1 si ils sont present dans la table 2 par leurs produit_name_2 et leurs quantites correspondantes.
    je ne suis pas sure :Scoprpi0 que c'est ce que matel dit par rapport à la deuxième colonne quantites, ce n'est pas clair qu'il veut faire une addition des deux quantités entre les deux tables, cependant ce n'est pas compliqué dans les deux cas.
    s'il veut juste faire un remplacement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE table1, table2 SET table1.produit_name_1 = table2.produit_name_2, table1.quantites = table2.quantites
    WHERE (table1.produit_name_1=table2.produit_name_1);
    Si c'est comme l'exemple de Scorpi0 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE table1, table2 SET table1.produit_name_1 = table2.produit_name_2, table1.quantites =table1.quantites+ table2.quantites
    WHERE (table1.produit_name_1=table2.produit_name_1);
    Le champ quantites doit être numerique, sinon les données sont concaténées au lieu d'être calculées.
    Scopri0 je sais que t'aurais pu répondre non seulement par des exemples mais aussi par des solutions

    ++

  7. #7
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 13
    Par défaut
    Ah oui il y avait des zones d'ombres en effet.
    Si je ne me trompe pas on peut resumer par :
    Resultat final = somme des elements uniques dans table 1 + tous les elements de table 2 GROUP BY produit_name_#?

    Exemple precis et detaille du resultat que jaimerais avoir :

    Table1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    produit_name_1  quantite 
    --------------  ----------
    P1                   5
    P2                   6
    P55                  3

    Table 2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    produit_name_1    produit_name_2   quantite 
    --------------   ----------------   ----------
    P1                           P3                6
    P1                           P4                12
    P2                           P5                56
    P2                           P3                1

    Résultat voulu dans la table 1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    produit_name_1  quantite 
    --------------  ----------
    P55                   3 
    P3                    7( 6+1)
    P4                    12
    P5                    56

    Merci pour votre aide en tout cas

  8. #8
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 955
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 955
    Par défaut
    A mon avis tu ne peux pas le faire en un update, il faut donc décomposer (insert+delete) et passer par une table intermédiaire histoire d'être plus tranquille . Donc moi je ferais un truc dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    create table table1bis as select * from table1;
     
    delete from table1bis where produit_name_1 in (select produit_name_1 from table2);
     
    insert into table1bis (produit_name_1,  quantite)
    select produit_name_2, sum(quantite)
    from table2
    where produit_name_1 in (select produit_name_1 from table1)
    group by produit_name_2;
    Vérification des données dans table1bis et si c'est ok :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    truncate table table1;
     
    insert into table1 (select * from table1bis);
     
    drop table table1bis;

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

Discussions similaires

  1. Mise en forme table access par VBA ou SQL
    Par romrai dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 21/02/2006, 12h29
  2. access jointure
    Par vduhaze dans le forum Access
    Réponses: 1
    Dernier message: 01/02/2006, 17h27
  3. Access plus rapide que SQL server ????? (débutante)
    Par 24 faubourg dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 21/12/2005, 17h36
  4. formulaire access et donnée sous sql server
    Par liliprog dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 09/09/2005, 20h20
  5. formualaire access pour gerer bases sql server
    Par attavus dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/04/2005, 11h01

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