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 MySQL Discussion :

Problème de création de table


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Par défaut Problème de création de table
    Bonjour tout le monde, je suis très heureux de voir qu'il ya des personnes qui prennent du temps à expliquer et aider les personnes, je leur dis chapeau.

    Voilà, je suis entrain de concevoir un projet de base de donnée et j'ai la table `import` suivante qui me pose problème ayant comme schéma relationnel suivant:


    Nom_Pays Code_Espece_Commodité Qualité Annee1976 Annee1977 etc..

    Exemple de ligne : France 1 Import_Quantity 0 0

    Autre exemple de ligne: France 1 Import_Value 55 97

    Autre exemple: France 26 Import_Value 65 87


    J'aimerai arriver à créer une table à partir de cet table `import`, une autre table ayant comme schéma relationnel suivant:

    Nom_Pays Code_Espece_Commodité Année Import_Quantity Import_Value


    Exemple: France 1 1976 0 55

    Autre Exemple: France 1 1977 0 97



    Je ne trouve pas les requetes nécessaires afin de faire cette transition.


    Merci beaucoup de m'aider et bon courage à tous pour vos autres problèmes

  2. #2
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Tu devrais aussi avoir :
    - une table Pays (pay_id, pay_nom)
    - une table Espece (esp_id, esp_code, esp_libelle)

    Ainsi, ta table issue de la table d'importation aurait par exemple la structure suivante :
    ta_table (pay_id, esp_id, annee, quantite_import, valeur_import)

    Maintenant, remplissons les tables...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    -- Alimentation de la table des pays
    INSERT INTO Pays (pay_nom)
    SELECT DISTINCT Nom_Pays
    FROM Import
    ORDER BY Nom_Pays;
     
    -- Alimentation de la table des espèces
    INSERT INTO Espece (esp_code)
    SELECT DISTINCT Code_Espece_Commodité
    FROM Import
    ORDER BY Code_Espece_Commodité;
     
    /* 
    * Alimentation de la table principale des données
    * Les requêtes ci-dessous sont à reproduire pour chaque année de la table d'import
    * en changeant la valeur de l'année et le nom de la colonne portant l'année
    */
    -- On insère d'abord les quantités
    INSERT INTO ta_table (pay_id, esp_id, annee, quantite_import)
    SELECT p.pay_id, e.esp_id, 1976, i.Annee1976
    FROM Import i
    INNER JOIN Pays p ON p.pay_nom = i.Nom_Pays
    INNER JOIN Espece e ON e.esp_code = i.Code_Espece_Commodité
    WHERE i.Qualité = 'Import_Quantity'
    ORDER BY p.pay_id, e.esp_id;
     
    -- On met à jour les valeurs pour les données déjà insérées
    UPDATE ta_table t
    INNER JOIN 
    (
        SELECT p.pay_id, e.esp_id, i.Annee1976
        FROM Import i
        INNER JOIN Pays p ON p.pay_nom = i.Nom_Pays
        INNER JOIN Espece e ON e.esp_code = i.Code_Espece_Commodité
        WHERE i.Qualité = 'Import_Value'
    ) tmp 
        ON tmp.pay_id = t.pay_id
        AND tmp.esp_id = t.esp_id
    SET t.valeur_import = tmp.Annee1976
    WHERE t.annee = 1976
    Les deux dernières requêtes, et surtout la dernière, sont à tester sur un petit jeu de données d'abord.

    Ceci dit, si tu es maître de l'import, change le pour faciliter l'alimentation de la BDD structurée !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Par défaut Merciiii beaucoup!!
    Je vous remercie beaucoup de votre attention à mon égard et des détails de vos explications!! J'ai en effet crée une table espèce ainsi qu'une table pays mais c'était surtout au niveau des années et des quantitités par année, le fait de transformer une ligne en colonne.

    Je vais faire ce que vous m'avez conseillé de faire, malheureusement même le fichier 'import', j'ai du mal à le modifier, c'est un fichier csv.


    Mercii beaucoup beaucoup de votre aide et générosité

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Par défaut Ree
    Cela marche parfaitement, mercii encore pour ton efficacité!

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/01/2008, 22h22
  2. problème de création de table
    Par /*Mr.D*/ dans le forum Outils
    Réponses: 4
    Dernier message: 02/12/2007, 23h36
  3. Oracle 9.2 problème de création de table
    Par Dadou74 dans le forum Administration
    Réponses: 3
    Dernier message: 29/03/2007, 15h07
  4. [SQL-Server] Problème query création de tables sous PHP
    Par DjSoulz dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 27/03/2007, 23h18
  5. Problème de création de table sous MySql
    Par ducamba dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/06/2003, 10h59

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