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

Access Discussion :

[SQL] exportation table unique vers tables multiples


Sujet :

Access

  1. #1
    Membre habitué Avatar de kirgan
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 127
    Points : 136
    Points
    136
    Par défaut [SQL] exportation table unique vers tables multiples
    Hello,

    j'ai une BD générée par une appli (en fait, c'est un rapport, que j'utilise comme BD).

    Je vous schématise grossièrement:

    Les champs:
    Reference
    Etape
    Janvier
    Fevrier
    etc -> Décembre

    En gros ca donne ceci

    Produit1 - Prévision - 100 - 100 - 100 - ...
    Produit1 - Commande - 80 - 120 - 100 - ...
    Produit1 - Livré - 80 - 100 - 80 - ...
    Produit2 - Prévision - ...
    ...

    Ce qui revient à dire que mon Produit1 était, pour janvier, planifié à 100 unités, on a finalement passé 80 commandes, et on en a recu 80

    Niveau modélisation, on a déjà vu mieux... Et donc pour la suite de mon traitement, les colonnes pour chaque mois, c'est assez limite (pour les extraits par mois par exemple). J'avais donc dans l'idée de faire passer tout ca dans 3 tables :

    1 table RefProduit, 1 table TypeEtat, et une table Statut, qui contiendrait un lien vers TypeEtat, un vers RefProduit, et une date + quantité comme champs.

    Voyez-vous un moyen "simple" pour faire cette "exportation"? Soit SQL pur, soit Access (je n'ai pas trouvé d'assistant pour cela)

    Pour l'instant, la seule solution que je vois, c'est de faire une premiere requête pour remplir la table Produits, une deuxième pour remplir les Etats, et enfin un troisième passage pour remplir ma table intermédiaire, avec des sous-requêtes pour faire les liens... rien de bien léger en somme...

    Merci d'avance si vous avez des idées!


    [edit, HS]
    je me demandais pourquoi c'était si calme aujourd'hui sur le fofo... J'avais oublié le w-e prolongé en france Bande de veinards
    [/edit, HS]
    K.
    If you think things can't get worse it's probably only because you lack sufficient imagination.

    Pensez au tag si votre problème est réglé!
    Bas de la page > Résolu

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    C'est une opération à répeter ou bien juste une fois ?

    Si c'est juste une fois, ne t'embête pas avec du code et utilise un simple copier coller

  3. #3
    Membre habitué Avatar de kirgan
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 127
    Points : 136
    Points
    136
    Par défaut
    1 à 2 fois par mois... et l'idéal serait que je puisse mettre ca sous la forme de UN bouton, car je vois mal une secrétaire faire une manip de données... Elle m'enverra ch.. quand je lui montrerai l'appli ^^

    Sans compter que j'ai _un peu_ simplifié le modèle.. En fait, j'ai dans les 35 colonnes, et 5000 enregistrements.
    K.
    If you think things can't get worse it's probably only because you lack sufficient imagination.

    Pensez au tag si votre problème est réglé!
    Bas de la page > Résolu

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    tu écris une requête analyse croisée avec ta table
    pour pivot étape les autres champs en ligne
    de facon à obtenir

    ***************************prevision commande livrée
    janvier produits1 autres champs

    et tu te sers de cela pour tous tes autres traitements sans toucher à rien de la structure
    Elle est pas belle la vie ?

  5. #5
    Membre habitué Avatar de kirgan
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 127
    Points : 136
    Points
    136
    Par défaut
    Je ne suis pas sûr de bien comprendre, random... Mais je te remercie malgré tout de prendre le temps de répondre!

    voici ce que j 'ai pour l'instant (pour le mois d'avril - les champs s'appellent en fait "01/01/2006", "01/02/2006", etc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    TRANSFORM Sum(PREV.[01/04/2006]) AS [SommeDe01/04/2006]
    SELECT PREV.Ref
    FROM PREV
    GROUP BY PREV.Ref
    PIVOT PREV.Etape;
    Ne comprenant pas exactement, j'ai mis en valeur le mois, me disant que c'est le champ qui contient effectivement mes données. Par contre, je ne vois pas comment je peux mettre Janvier comme en-tête de ligne.

    Je ne suis pas hyper à l'aise avec Access, je devrais pê essayer tout cela dans un analyseur SQL, car j'ai l'impression de me prendre la tête et de me disperser car je ne maîtrise pas suffisamment l'outil, pas parce que techniquement c'est au-dela de mes moyens.

    D'autre part, j'ai fait une requete pour remplir une table ordonnée comme je le veux, mais suis-je obligé de faire une requête par mois...?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    INSERT INTO STATUT ( REF, [DATE], QUANTITE, ETAPE)
    SELECT PREV.Ref, "avril" AS Expr1, PREV.[01/04/2006], PREV.Etape
    FROM PREVCBUVAL
    Cela me donne plus ou mois le résultat attendu, si je cumule ca avec une requete pour remplir une table des références (donc avec tous les champs sauf les valeurs), et une requête pour remplir une table "Etape".
    K.
    If you think things can't get worse it's probably only because you lack sufficient imagination.

    Pensez au tag si votre problème est réglé!
    Bas de la page > Résolu

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    la valeur doit aussi être étape
    mets le champ date en ligne

    pour avoir un total mensuel fais month(madate)
    pour choisir le mois ajoute
    where month(madate)=[quel mois ?]
    and year(madate)=[quelle année ?]
    Elle est pas belle la vie ?

  7. #7
    Membre habitué Avatar de kirgan
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2006
    Messages : 127
    Points : 136
    Points
    136
    Par défaut
    Aaah ok je pense que je n'ai pas été suffisamment clair!

    Je n'ai pas un champs date... J'ai DOUZE champs "date", et c'est justement ce dont je veux me débarasser - mes infos proviennent d'un report, qui pour un produit donné, et une étape donnée, me donne les 12 mois (sur la même ligne! c'est vraiment affreux au niveau modélisation, si je l'avais fait moi-même, je balancerais tout à la poubelle...)

    Je te mets la première ligne avec les en-têtes, et la premiere ligne de données :

    [edit:Hrmf ca marche pas le copy/paste]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ref   | nom   | etape   | 01/01/06 | 01/02/06 | 01/03/06 | 01/04/06 | 01/05/06
    --------------------------------------------------------------------
    AAA   | prod1 | prév    | 100        | 100        | 100
    AAA   | prod1 | liv     | 100        | 100        | 100
    BBB   | prod2 | prév    | 80        | 80          | 100
     
    etc...
    note : on pourrait imaginer la PK sur (nom, etape), si ca éclaire la structure
    K.
    If you think things can't get worse it's probably only because you lack sufficient imagination.

    Pensez au tag si votre problème est réglé!
    Bas de la page > Résolu

Discussions similaires

  1. [XL-2010] Export données Excel vers table Microsoft Sql Server
    Par Lucas G dans le forum Excel
    Réponses: 1
    Dernier message: 17/08/2013, 13h18
  2. Exporter Des Donnees De Tables Oracle Vers Excel ?
    Par Djene dans le forum Administration
    Réponses: 10
    Dernier message: 13/06/2009, 19h02
  3. messages multilingues: table unique ou tables séparées
    Par lexsteens dans le forum Langage SQL
    Réponses: 3
    Dernier message: 26/12/2008, 16h50
  4. Export de toutes les tables Access vers PostGres
    Par gege22mars dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 05/09/2007, 11h30
  5. Exporter données formulaire vers table
    Par kevain_09 dans le forum IHM
    Réponses: 8
    Dernier message: 05/06/2007, 18h11

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