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 :

Fusion de données


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Novembre 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Novembre 2012
    Messages : 13
    Points : 10
    Points
    10
    Par défaut Fusion de données
    Bonjour à tous,

    J'ai 2 fichiers de base de donnée access: Ventes.mdb et Achat.mdb
    Ces 2 fichiers utilisent certaines tables communes situées sur une 3eme BDD: DATA.mdb.

    Sur ventes.mdb, je réalise des stats de vente stockés dans une table tStatsVente, qui ressemble à ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Categorie, Designation, VenteparMois, Stock
    Viande,     Lapin,           5,               30
    Viande,     Porc,           15,               18
    Legume,      Haricot,       10,               30
    Sur Achats.mdb, une requete me recense les achats en cours dans la table tPrevisions. Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Categorie, Designation, QuantiteAchat, DateArrivee
    Viande,     Porc,           20,                01/02/2014
    Legume,     Haricot,        15,                20/02/2014
    Viande,     Porc,           20,                27/02/2014
    Legume,     Brocoli,        15,                28/02/2014
    Pour l'exemple, j'ai plusieurs achats de porc en cours, et un arrivage d'un nouveau produit: du brocoli.

    je voudrai arriver au résultat suivant dans une table tApercu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Categorie, Designation, VenteparMois, Stock, QuantiteAchat, DateArrivee
    Viande,     Lapin,           5,               30,           ,           
    Viande,     Porc,           15,               18,          20,          01/02/2014
    Viande,     Porc,           15,               18,          20,          27/02/2014
    Legume,      Haricot,       10,               30,          15,          20/02/2014
    Legume,     Brocoli,           ,               ,           15,          28/02/2014
    C'est à dire, que tous les éléments de tStatsVente doivent apparaitre, et les nouveaux éléments de tPrevisions doivent aussi apparaitre.
    Si il y a plusieurs enregistrements tPrevisions, ils doivent avoir en dénominateur commun les données de tStatsVente.

    J'avais cru lire qu'il fallait faire une jointure entre les tables, mon problème c'est que les tables sont dans 2 bases différentes, et qu'apparemment je ne peux pas exécuter des jointures avec des tables liées.

    Merci pour votre aide,

    Eric

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 841
    Points : 7 975
    Points
    7 975
    Par défaut
    Bonjour,

    Qui t'a dit qu'on pouvais pas faire des jointures avec les tables liées? Est-ce que tu as essayé?

    Essayes cette requête union :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT tPrevisions.Categorie, tPrevisions.Designation, tStatsVente.VenteparMois, tStatsVente.Stock, tPrevisions.QuantiteAchat, tPrevisions.DateArrivee
    FROM tPrevisions LEFT JOIN tStatsVente ON (tPrevisions.Categorie = tStatsVente.Categorie) AND (tPrevisions.Designation = tStatsVente.Designation)
     
    UNION
     
    SELECT tStatsVente.Categorie, tStatsVente.Designation, tStatsVente.VenteparMois, tStatsVente.Stock,"" as QuantiteAchat,"" as DateArrivee
    FROM tStatsVente LEFT JOIN tPrevisions ON (tStatsVente.Designation = tPrevisions.Designation) AND (tStatsVente.[Categorie] = tPrevisions.[Categorie])
    WHERE (((tPrevisions.Categorie) Is Null) AND ((tPrevisions.Designation) Is Null));

    Bonne continuation

  3. #3
    Membre à l'essai
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Novembre 2012
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Novembre 2012
    Messages : 13
    Points : 10
    Points
    10
    Par défaut
    ... C'était exactement ce que je recherchais.

    Je croyais qu'on mettait visuellement une relation entre 2 tables...

    j'aurai appris comment réaliser cette jointure.

    Merci beaucoup Mandresy,

    Eric

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

Discussions similaires

  1. Fusion automatique données access sur openoffice writer
    Par HookerSeven dans le forum Access
    Réponses: 4
    Dernier message: 16/06/2008, 17h16
  2. [MySQL] Fusion des données de deux tables, lors de la lecture
    Par ymoreau dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/06/2007, 20h45
  3. [iReport] Calcul de somme de variables et fusion de données
    Par RR instinct dans le forum iReport
    Réponses: 7
    Dernier message: 03/04/2006, 16h04
  4. Réponses: 4
    Dernier message: 01/03/2006, 11h21
  5. Fusion de données
    Par pc75 dans le forum ASP
    Réponses: 2
    Dernier message: 07/02/2006, 13h00

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