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

SQL Oracle Discussion :

Construction de la nouvelle base de données


Sujet :

SQL Oracle

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2018
    Messages : 21
    Par défaut Construction de la nouvelle base de données
    Salut, je suis actuellement coincé sur la question d'un tp m'empêchant d'avancer.
    Vous avez aussi une description de cette schéma:
    • Un fournisseur est identifie de manière unique par son nom d’au plus 20 caractères; le département correspond au code départemental de la France (ex. 56); la ville est un chaine de caractères de taille maximale 20, et doit être remplisse pour chaque fournisseur; le pays est un chaine d’au plus 20 caractères; l’année est un numéro et correspond au première date d’achat depuis chaque fournisseur; le dernier attribut indique (vrai, faux) si le fournisseur est toujours sur le marché.

    • Une composante est décrite de manière unique par son nom d’au plus 20 caractères et correspond à une catégorie (aussi une chaine de caractères).

    • La table d’achats contient un identifiant (entier), les noms du fournisseur et de la composante acheté, qui doivent correspondre aux enregistrements des autres tables, un date d’achat (obligatoire), le prix unitaire en euros (obligatoire et strictement positif), la quantité acheté (obligatoire et strictement positif), ainsi que un indicateur que l’achat a été finalisé.

    Question 2
    Remplir la nouvelle base de données avec les données de la table AchatsDonneesBrutes. On suppose que tous les fournisseurs qui nous ont vendu de composantes sont toujours actifs et que tous les achats ont été finalisé.



    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
    DROP TABLE AchatsDonneesBrutes;
    CREATE TABLE AchatsDonneesBrutes(
      DateAchat DATE,
      NomComposante VARCHAR(20),
      TypeComposante VARCHAR(20),
      PrixUnit REAL,
      Quantite INTEGER,
      NomFournisseur VARCHAR(20),
      Dept INTEGER,
      Ville VARCHAR(20),
      Pays VARCHAR(20)
    );
     
    DROP TABLE Fournisseurs;
    CREATE TABLE Fournisseurs(
      Nomfournisseur VARCHAR(20)      PRIMARY KEY,
      Departement INT(5),
      Ville VARCHAR(20),
      Pays VARCHAR(20),
      Annee DATE,
      Active VARCHAR(4)
    );
     
    DROP TABLE Achats;
    CREATE TABLE Achats(
      IdAchat INTEGER       PRIMARY KEY,
      NomFournisseur VARCHAR(20),
      NomComposante VARCHAR(20),
      DateAchat DATE NOT NULL,
      PrixUnit REAL NOT NULL,
      Quantite INTEGER NOT NULL,
      Finale VARCHAR(4)
    );
     
    DROP TABLE Composantes;
    CREATE TABLE Composantes(
      Composante VARCHAR(20)          PRIMARY KEY,
      TypeComposante VARCHAR(20)
    );


    Voilà ce que j'ai fais

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    La table AchatsDonneesBrutes vous est donnée par l'exercice ?

    Sinon c'est pas trop mal dans l'ensemble.
    Laissez tomber le type REAL (c'est un type à virgule flottante, ce n'est pas précis), utilisez un DECIMAL(5,2) pour les prix. Après si on vous la donne avec ce type, tant pis gardez-le.

    Je crois qu'il vous manque :
    - un attribut de colonne NOT NULL dans la table fournisseur (je vous laisse trouver où, c'est dans l'énoncé)
    - une clef étrangère dans la table ACHAT
    - le type de l'année fournisseur n'est pas correct (INTEGER ou NUMBER(4))
    - les scripts pour remplir toutes les tables.

    Allez, je vous donne le dernier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    insert into Composantes (Composante, TypeComposante)
    select distinct NomComposante, TypeComposante
      from AchatsDonneesBrutes;

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2018
    Messages : 21
    Par défaut
    Merci pour la réponse

    J'ai pas eu le temps depuis la dernière fois d'avancer. Il y a bien un script mais il est trop long pour ce message
    Le texte que vous avez entré est trop long (141689 caractères). Veuillez le raccourcir à 100000 caractères.
    .


    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
     
    DROP TABLE AchatsDonneesBrutes;
    CREATE TABLE AchatsDonneesBrutes(
      DateAchat DATE,
      NomComposante VARCHAR(20),
      TypeComposante VARCHAR(20),
      PrixUnit REAL,
      Quantite INTEGER,
      NomFournisseur VARCHAR(20),
      Dept INTEGER,
      Ville VARCHAR(20),
      Pays VARCHAR(20)
    );
     
    DROP TABLE Fournisseur;
    CREATE TABLE Fournisseur(
      Nomfournisseur VARCHAR(20) PRIMARY KEY,
      Departement INTEGER,
      Ville VARCHAR(20),
      Pays VARCHAR(20),
      Annee DATE,
      Active VARCHAR(4) 
    );
     
    DROP TABLE Achats;
    CREATE TABLE Achats(
      IdAchat INTEGER       PRIMARY KEY,
      NomFournisseur VARCHAR(20),
      NomComposante VARCHAR(20),
      DateAchat DATE NOT NULL,
      PrixUnit REAL NOT NULL,
      Quantite INTEGER NOT NULL,
      Finale VARCHAR(4)
    );
     
    DROP TABLE Composantes;
    CREATE TABLE Composantes(
      Composante VARCHAR(20)          PRIMARY KEY,
      TypeComposante VARCHAR(20)
    );
     
     
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-01-01','YYYY-MM-DD'),'RT59','memoire',42.64,20,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-01-02','YYYY-MM-DD'),'TFly537','cpu',57.23,100,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-01-05','YYYY-MM-DD'),'ScreenGlass81','ecran',108.40,30,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-01-06','YYYY-MM-DD'),'ScreenGlass81','ecran',121.55,30,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-01-08','YYYY-MM-DD'),'TFly537','cpu',74.75,15,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-01-13','YYYY-MM-DD'),'XDisk965','disk',33.43,15,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-01-15','YYYY-MM-DD'),'XDisk965','disk',28.06,5,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-01-19','YYYY-MM-DD'),'XDisk965','disk',38.45,20,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-01-19','YYYY-MM-DD'),'StoreB13','batterie',68.64,100,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-01-19','YYYY-MM-DD'),'ViewShut47','camera',43.19,50,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-01-22','YYYY-MM-DD'),'ViewShut47','camera',49.10,10,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-02-03','YYYY-MM-DD'),'StoreB13','batterie',63.82,50,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-02-08','YYYY-MM-DD'),'TFly537','cpu',65.71,30,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-02-11','YYYY-MM-DD'),'RT59','memoire',44.98,100,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-02-17','YYYY-MM-DD'),'ViewShut47','camera',42.52,15,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-02-18','YYYY-MM-DD'),'ScreenGlass81','ecran',121.66,40,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-02-20','YYYY-MM-DD'),'ScreenGlass81','ecran',107.53,5,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-02-28','YYYY-MM-DD'),'ScreenGlass81','ecran',116.22,50,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-03-03','YYYY-MM-DD'),'ViewShut47','camera',47.26,30,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-03-06','YYYY-MM-DD'),'ViewShut47','camera',49.74,40,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-03-06','YYYY-MM-DD'),'ScreenGlass81','ecran',107.54,15,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-03-06','YYYY-MM-DD'),'SnapCam645','camera',33.18,30,'Cams4all',56,'Vannes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-03-08','YYYY-MM-DD'),'SnapCam645','camera',33.93,100,'Cams4all',56,'Vannes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-03-10','YYYY-MM-DD'),'ScreenGlass81','ecran',116.09,40,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-03-12','YYYY-MM-DD'),'SnapCam645','camera',35.49,5,'Cams4all',56,'Vannes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-03-12','YYYY-MM-DD'),'SnapCam645','camera',35.62,15,'Cams4all',56,'Vannes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-03-13','YYYY-MM-DD'),'ViewShut47','camera',43.30,5,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-03-14','YYYY-MM-DD'),'RT59','memoire',44.24,50,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-03-16','YYYY-MM-DD'),'SnapCam645','camera',36.05,20,'Cams4all',56,'Vannes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-03-16','YYYY-MM-DD'),'ViewShut47','camera',43.39,15,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-03-16','YYYY-MM-DD'),'SnapCam645','camera',33.84,10,'Cams4all',56,'Vannes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-03-21','YYYY-MM-DD'),'ScreenGlass81','ecran',116.73,15,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-03-23','YYYY-MM-DD'),'ViewShut47','camera',50.10,50,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-03-24','YYYY-MM-DD'),'RT59','memoire',46.06,40,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-03-30','YYYY-MM-DD'),'SnapCam645','camera',30.77,30,'Cams4all',56,'Vannes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-04-02','YYYY-MM-DD'),'StoreB13','batterie',58.83,10,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-04-09','YYYY-MM-DD'),'ViewShut47','camera',56.57,10,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-04-14','YYYY-MM-DD'),'StoreB13','batterie',60.93,100,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-04-17','YYYY-MM-DD'),'SnapCam645','camera',33.29,5,'Cams4all',56,'Vannes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-04-20','YYYY-MM-DD'),'ScreenGlass81','ecran',90.32,50,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-04-20','YYYY-MM-DD'),'RT59','memoire',31.84,5,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-04-23','YYYY-MM-DD'),'TFly537','cpu',55.58,20,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-05-05','YYYY-MM-DD'),'SnapCam645','camera',35.56,40,'Cams4all',56,'Vannes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-05-05','YYYY-MM-DD'),'ScreenGlass81','ecran',83.44,30,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-05-05','YYYY-MM-DD'),'SnapCam645','camera',35.53,50,'Cams4all',56,'Vannes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-05-06','YYYY-MM-DD'),'RAMT01','memoire',23.84,20,'MaxMemoire',35,'Rennes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-05-08','YYYY-MM-DD'),'RAMT01','memoire',20.06,5,'MaxMemoire',35,'Rennes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-05-08','YYYY-MM-DD'),'RT59','memoire',43.30,10,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-05-09','YYYY-MM-DD'),'RAMT01','memoire',23.23,30,'MaxMemoire',35,'Rennes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-05-10','YYYY-MM-DD'),'ViewShut47','camera',40.30,10,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-05-16','YYYY-MM-DD'),'RAMT01','memoire',26.56,40,'MaxMemoire',35,'Rennes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-05-18','YYYY-MM-DD'),'ScreenGlass81','ecran',109.47,30,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-05-21','YYYY-MM-DD'),'RT59','memoire',42.91,50,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-05-24','YYYY-MM-DD'),'RAMT01','memoire',26.80,50,'MaxMemoire',35,'Rennes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-05-27','YYYY-MM-DD'),'SnapCam645','camera',36.95,40,'Cams4all',56,'Vannes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-06-02','YYYY-MM-DD'),'RAMT01','memoire',22.47,50,'MaxMemoire',35,'Rennes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-06-06','YYYY-MM-DD'),'RAMT01','memoire',21.56,15,'MaxMemoire',35,'Rennes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-06-07','YYYY-MM-DD'),'ScreenGlass81','ecran',98.10,50,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-06-09','YYYY-MM-DD'),'ScreenGlass81','ecran',92.45,30,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-06-18','YYYY-MM-DD'),'SnapCam645','camera',30.42,100,'Cams4all',56,'Vannes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-06-22','YYYY-MM-DD'),'SnapCam645','camera',35.42,40,'Cams4all',56,'Vannes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-06-24','YYYY-MM-DD'),'SnapCam645','camera',34.37,50,'Cams4all',56,'Vannes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-06-24','YYYY-MM-DD'),'RAMT01','memoire',23.65,20,'MaxMemoire',35,'Rennes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-06-25','YYYY-MM-DD'),'SnapCam645','camera',36.03,50,'Cams4all',56,'Vannes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-06-26','YYYY-MM-DD'),'RAMT01','memoire',24.55,15,'MaxMemoire',35,'Rennes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-06-27','YYYY-MM-DD'),'StoreB13','batterie',58.30,15,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-07-02','YYYY-MM-DD'),'RAMT01','memoire',25.65,100,'MaxMemoire',35,'Rennes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-07-03','YYYY-MM-DD'),'SnapCam645','camera',26.80,15,'Cams4all',56,'Vannes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-07-04','YYYY-MM-DD'),'RAMT01','memoire',26.28,20,'MaxMemoire',35,'Rennes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-07-05','YYYY-MM-DD'),'SnapCam645','camera',30.74,15,'Cams4all',56,'Vannes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-07-08','YYYY-MM-DD'),'ScreenGlass81','ecran',118.35,15,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-07-09','YYYY-MM-DD'),'ViewShut47','camera',51.67,50,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-07-11','YYYY-MM-DD'),'RAMT01','memoire',25.04,100,'MaxMemoire',35,'Rennes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-07-16','YYYY-MM-DD'),'TFly537','cpu',58.25,100,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-07-23','YYYY-MM-DD'),'RAMT01','memoire',20.15,5,'MaxMemoire',35,'Rennes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-08-01','YYYY-MM-DD'),'RAMT01','memoire',24.59,10,'MaxMemoire',35,'Rennes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-08-07','YYYY-MM-DD'),'RAMT01','memoire',24.37,15,'MaxMemoire',35,'Rennes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-08-15','YYYY-MM-DD'),'ScreenGlass81','ecran',104.40,50,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-08-15','YYYY-MM-DD'),'SnapCam645','camera',29.78,100,'Cams4all',56,'Vannes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-08-16','YYYY-MM-DD'),'RT59','memoire',35.14,40,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-08-22','YYYY-MM-DD'),'GlassC07','ecran',47.37,15,'XijiCo',NULL,'Pekin','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-08-23','YYYY-MM-DD'),'RAMT01','memoire',24.52,5,'MaxMemoire',35,'Rennes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-09-01','YYYY-MM-DD'),'RAMT01','memoire',21.47,10,'MaxMemoire',35,'Rennes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-09-02','YYYY-MM-DD'),'RAMT01','memoire',19.15,30,'MaxMemoire',35,'Rennes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-09-05','YYYY-MM-DD'),'SnapCam645','camera',27.50,100,'Cams4all',56,'Vannes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-09-12','YYYY-MM-DD'),'ScreenGlass81','ecran',117.34,40,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-09-15','YYYY-MM-DD'),'SnapCam645','camera',30.44,10,'Cams4all',56,'Vannes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-09-17','YYYY-MM-DD'),'XDisk965','disk',38.28,40,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-09-19','YYYY-MM-DD'),'SnapCam645','camera',32.04,30,'Cams4all',56,'Vannes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-09-19','YYYY-MM-DD'),'RT59','memoire',34.53,15,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-09-22','YYYY-MM-DD'),'GlassC07','ecran',53.86,20,'XijiCo',NULL,'Pekin','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-09-27','YYYY-MM-DD'),'XDisk965','disk',34.90,20,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-09-27','YYYY-MM-DD'),'SnapCam645','camera',30.40,5,'Cams4all',56,'Vannes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-09-30','YYYY-MM-DD'),'BigStore63','disk',62.30,5,'ChipTouch',NULL,'Plymouth','UK');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-10-04','YYYY-MM-DD'),'BigStore63','disk',73.67,20,'ChipTouch',NULL,'Plymouth','UK');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-10-08','YYYY-MM-DD'),'ViewShut47','camera',50.10,100,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-10-09','YYYY-MM-DD'),'RAMT01','memoire',27.74,20,'MaxMemoire',35,'Rennes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-10-09','YYYY-MM-DD'),'RAMT01','memoire',26.03,15,'MaxMemoire',35,'Rennes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-10-16','YYYY-MM-DD'),'SnapCam645','camera',36.00,50,'Cams4all',56,'Vannes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-10-19','YYYY-MM-DD'),'SnapCam645','camera',34.04,5,'Cams4all',56,'Vannes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-10-24','YYYY-MM-DD'),'RAMT01','memoire',23.99,50,'MaxMemoire',35,'Rennes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-10-24','YYYY-MM-DD'),'SnapCam645','camera',26.42,5,'Cams4all',56,'Vannes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-10-30','YYYY-MM-DD'),'BigStore63','disk',67.86,15,'ChipTouch',NULL,'Plymouth','UK');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-11-03','YYYY-MM-DD'),'SnapCam645','camera',26.70,40,'Cams4all',56,'Vannes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-11-08','YYYY-MM-DD'),'SnapCam645','camera',26.22,5,'Cams4all',56,'Vannes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-11-10','YYYY-MM-DD'),'RAMT01','memoire',21.80,30,'MaxMemoire',35,'Rennes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-11-12','YYYY-MM-DD'),'ScreenGlass81','ecran',101.90,5,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-11-13','YYYY-MM-DD'),'SnapCam645','camera',27.18,100,'Cams4all',56,'Vannes','France');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-11-21','YYYY-MM-DD'),'ScreenGlass81','ecran',94.80,40,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-11-21','YYYY-MM-DD'),'ScreenGlass81','ecran',119.71,5,'SellAll',NULL,'Nantong','Chine');
    INSERT INTO AchatsDonneesBrutes VALUES (TO_DATE('2010-11-22','YYYY-MM-DD'),'GlassC07','ecran',46.21,10,'XijiCo',NULL,'Pekin','Chine');
     
    UPDATE AchatsDonneesBrutes
    SET Dept = '56'
    WHERE Ville = 'Vannes' AND NomFournisseur = 'Cams4all';
     
    UPDATE AchatsDonneesBrutes
    SET Ville = 'Vannes'
    WHERE Ville = 'Vannes' AND NomFournisseur = 'Cams4all';
     
    UPDATE AchatsDonneesBrutes
    SET Ville = 'Londres'
    WHERE NomFournisseur = 'NetStor';
     
    UPDATE AchatsDonneesBrutes
    SET Pays = 'France'
    WHERE Ville = 'Lorient';
     
    INSERT INTO Fournisseur(NOMFOURNISSEUR,DEPARTEMENT,VILLE,PAYS)
    SELECT DISTINCT NOMFOURNISSEUR,DEPT,VILLE,PAYS FROM AchatsDonneesBrutes;
    INSERT INTO FOURNISSEUR
    VALUES('TRUE');
     
    SELECT * FROM Fournisseur;
     
    INSERT INTO Composantes(Composante,TypeComposante)
    SELECT DISTINCT NomComposante, TypeComposante FROM AchatsDonneesBrutes;
    Je ne comprends pas pourquoi oracle me met une erreur pour insérer la table fournisseur.

  4. #4
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    "Je ne comprends pas pourquoi oracle me met une erreur pour insérer la table fournisseur."
    Et quelle est cette erreur?

    Si tu parles de cet INSERT, es-tu sur que le SELECT DISTINCT renvoi un seul enregistrement? Si oui pas de souci, sinon, à moins que l'INSERT ait évolué, un INSERT sous Oracle ne gère qu'un enregistrement (mais je n'en suis pas sur, à valider!).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO Fournisseur(NOMFOURNISSEUR,DEPARTEMENT,VILLE,PAYS)
    SELECT DISTINCT NOMFOURNISSEUR,DEPT,VILLE,PAYS FROM AchatsDonneesBrutes;
    Dernière piste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO FOURNISSEUR VALUES('TRUE');
    est-ce qu'il ne faut pas donner le nom de la colonne où tu vas mettre TRUE?



    Petite précision, n'utilise pas le type VARCHAR, Oracle se le réserve pour plus tard, mets VARCHAR2 à la place.
    Ceci étant dit, si tu fais un DESC de ta table, tu verras que Oracle l'a remplacé de lui même par un VARCHAR2.

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2018
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2018
    Messages : 21
    Par défaut
    Citation Envoyé par Ikebukuro Voir le message
    "Je ne comprends pas pourquoi oracle me met une erreur pour insérer la table fournisseur."
    Et quelle est cette erreur?

    Si tu parles de cet INSERT, es-tu sur que le SELECT DISTINCT renvoi un seul enregistrement? Si oui pas de souci, sinon, à moins que l'INSERT ait évolué, un INSERT sous Oracle ne gère qu'un enregistrement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO Fournisseur(NOMFOURNISSEUR,DEPARTEMENT,VILLE,PAYS)
    SELECT DISTINCT NOMFOURNISSEUR,DEPT,VILLE,PAYS FROM AchatsDonneesBrutes;
    Petite précision, n'utilise pas le type VARCHAR, Oracle se le réserve pour plus tard, mets VARCHAR2 à la place.
    Ceci étant dit, si tu fais un DESC de ta table, tu verras que Oracle l'a remplacé de lui même par un VARCHAR2.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DISTINCT NOMFOURNISSEUR,DEPT,VILLE,PAYS,'TRUE',MIN(DateACHAT) FROM AchatsDonneesBrutes
    GROUP BY NomFournisseur,Dept,Ville,Pays;
    SELECT * FROM Fournisseur;
    J'ai trouvé la solution pour inserer les données dans la table fournisseur. C'était un problème dans ma table.
    Néanmoins, il me reste à rentré l'année du première achat mais je n'arrive pas à trouver la commande spécifique.

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Citation Envoyé par Guigui35160 Voir le message
    Merci pour la réponse
    J'ai pas eu le temps depuis la dernière fois d'avancer.
    Là je ne suis pas d'accord.
    Vous avez bien incorporé le bout de code que je vous ai donné tout prêt, mais vous avez allègrement fait fi de toutes les remarques juste au-dessus du code qui vous permettaient de corriger le reste de votre modèle.

  7. #7
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 204
    Par défaut
    @ikebukuro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO Fournisseur(NOMFOURNISSEUR,DEPARTEMENT,VILLE,PAYS)
    SELECT DISTINCT NOMFOURNISSEUR,DEPT,VILLE,PAYS FROM AchatsDonneesBrutes;
    INSERT INTO FOURNISSEUR
    VALUES('TRUE');
    La première requete est correcte ( sauf configuration très particulière dansles données, elle fonctionne)
    Par contre, effectivement, la 2ème requête n'est pas bonne. Si la table a 3 colonnes, il faut donner 3 valeurs dans l'instruction INSERT, ou il faut spécifier à quelles colonnes correspondent les valeurs insérées.

Discussions similaires

  1. Créer une nouvelle base de données sur Oracle10g
    Par mariam2001 dans le forum Administration
    Réponses: 6
    Dernier message: 11/05/2007, 15h25
  2. nouvelle Base de donnée
    Par Abdou1 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/07/2006, 09h11
  3. [ ouverture d'une nouvelle base de données]
    Par CHRISTOPHE SANOU dans le forum Access
    Réponses: 1
    Dernier message: 29/03/2006, 15h48
  4. ouverture d'une nouvelle base de données
    Par CHRISTOPHE SANOU dans le forum Access
    Réponses: 1
    Dernier message: 28/03/2006, 13h34
  5. [SQLite] Cherche le nom de la nouvelle base de données gérée par PHP5
    Par Thierry8 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/02/2006, 20h21

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